请帮助我。
$a = 4;
$b = 6;
$str_formula = '$a + ';
$result = null;
try {
$math_string ="\$result = ".$str_formula.";";
eval($math_string);
} catch (ParseError $e) {
\Log::info('Caught exception: '.$e->getMessage()) ;
}
当我尝试使用“修补程序”时,我在controller.with中无法获取错误语法。这个工作。告诉我为什么。
如果没有,请帮助我获取日志。错误Laravel:
local.ERROR: syntax error, unexpected ';' { ...
我不想看到错误500。那真的很糟糕。对不起,我的英语不好,
请理解。谢谢。
答案 0 :(得分:1)
使用\ParseError
类代替ParseError
进行捕获。
如果您使用的是ParseError
,则解释为[您当前的名称空间] \ ParseError,但是您需要根名称空间中的ParseError
。
答案 1 :(得分:0)
eval
是一种语言构造,而不是一种功能。这将起作用。了解更多eval php.net
$a = 4;
$b = 6;
$str_formula = '$a + ';
$result = null;
try {
$math_string ="\$result = \"$str_formula\";";
eval($math_string);
} catch (ParseError $e) {
\Log::info('Caught exception: '.$e->getMessage()) ;
}