Solution:
From the manual
As of PHP 7, if there is a parse error in the evaluated code,
eval()
throws aParseError
exception. Before PHP 7, in this caseeval()
returnedFALSE
and execution of the following code continued normally. It is not possible to catch a parse error ineval()
usingset_error_handler()
.
Instead use this:
<?php
try {
eval('will cause error');
} catch (ParseError $e) {
echo 'Caught exception: '.$e->getMessage()."\n";
}