how to handle parse error for eval function in php

error-handling, php, syntax-error

Solution

From the manual

As of PHP 7, if there is a parse error in the evaluated code, `eval()` throws a `ParseError` exception. Before PHP 7, in this case `eval()` returned `FALSE` and execution of the following code continued normally. It is not possible to catch a parse error in `eval()` using `set_error_handler()`.

Instead use this:

<?php

try {
    eval('will cause error');
} catch (ParseError $e) {
    echo 'Caught exception: '.$e->getMessage()."\n";
}

https://3v4l.org/1giOS

Problem

I'm trying to use the eval function for php. but I'm stuck in handling the parse error. like considering if I have edge cases like 1.. or 1++ if gives me parse error:syntax error, ..... anyone knows how to handle syntax error or how to bypass the error message? I want to give a better error message. also is it possible to store the error message to a variable? TIA

Original source