我有以下代码:
<?php
function calculate_string( $mathString ) {
$mathString = trim($mathString); // trim white spaces
$mathString = preg_replace("/[^0-9\(\)\+\-\*\/\.]/", "", $mathString);
return eval("return $mathString;");
}
$string1 = " (1 + 1) *3+ (2 + 2)";
echo calculate_string($string1);
$string2 = " (1 + 1) *3+* (2 + 2)";
echo calculate_string($string2);
?>
函数 calculate_string() 必须计算字符串中给出的数学表达式作为参数。第一次调用 string1 效果很好。
但是,我如何检测数学。字符串有数学。语法错误,如在 seconda 调用中,并返回一些值取决于错误类型,或者简单地不返回任何内容(更好的解决方案)?因此,当数学表达式包含语法错误时,问题是第二次调用中的 parse_error。
请帮忙。