我正在尝试将 eval 函数用于 php。但我一直在处理解析错误。就像考虑我是否有像 1.. 或 1++ 这样的边缘情况,如果给我解析错误:语法错误,.....
任何人都知道如何处理语法错误或如何绕过错误消息?我想给出更好的错误信息。
也可以将错误消息存储到变量中吗?
TIA
我正在尝试将 eval 函数用于 php。但我一直在处理解析错误。就像考虑我是否有像 1.. 或 1++ 这样的边缘情况,如果给我解析错误:语法错误,.....
任何人都知道如何处理语法错误或如何绕过错误消息?我想给出更好的错误信息。
也可以将错误消息存储到变量中吗?
TIA
从手册
从 PHP 7 开始,如果评估代码中存在解析错误,则
eval()
抛出ParseError
异常。在 PHP 7 之前,在这种情况下eval()
返回FALSE
并正常继续执行以下代码。在eval()
使用set_error_handler()
.
而是使用这个:
<?php
try {
eval('will cause error');
} catch (ParseError $e) {
echo 'Caught exception: '.$e->getMessage()."\n";
}
$response = @eval($string);
if (error_get_last()){
echo 'Show your custom error message';
//Or you can
print_r(error_get_last());
}
从手册:
如果评估代码中存在解析错误,则
eval()
返回FALSE
并正常继续执行以下代码。在eval()
使用set_error_handler()
.
但是由于您不会调用eval
任意代码(对吗?),这应该不是问题。