(PHP 7, PHP 8)
ParseError は、eval() を呼んだときなどの PHP コードのパースに失敗した場合にスローされます。
注意: PHP 7.3.0 以降は、ParseError クラスは CompileError クラスを継承するようになりました。 以前のバージョンでは、Error を継承していました。
The priority of Parse Error should be higher than that of Fatal Error,Parse Error, which has the highest priority among all PHP exceptions. See the following example:
<?php
error_reporting(E_ALL);
test()
//System output a parse error
?>
<?php
error_reporting(E_WARNING);
test()
//System output a parse error
?>
<?php
error_reporting(E_ERROR);
test()
//System output a parse error
?>
<?php
error_reporting(E_PARSE);
test()
//System output a parse error
?><?php
/*
* The function eval() evaluate his argument as an instruction PHP
* Then the argument must respect the standar of PHP codage
* In this example the semicolon are missign
*/
try{
eval("echo 'toto' echo 'tata'");
}catch(ParseError $p){
echo $p->getMessage();
}
/*
* If you run this code the result is different of the result of above code
* PHP will output the standar parse Error: syntax error, ....
*
eval("echo 'toto' echo 'tata'");
*/