我正在做一个项目,我需要做一个函数,将解析4个默认的数学运算(加,减,乘,除)。如果函数可以解析括号之间的操作,那就更好了。
因此,函数必须首先检查乘法和除法操作(应该在它解析完括号之间的所有操作之后进行检查,如果它们存在,并且该规则应该适用于括号操作,最大的问题是括号可以包含括号)。在做完所有的乘法和除法运算之后,它应该做所有的加法和减法运算。最终的数字应该由函数返回。
另一个很好的补充是RegExp字符串,它将检查数学运算。
提前感谢!
发布于 2011-04-27 22:31:43
这应该是非常安全的:
function do_maths($expression) {
eval('$o = ' . preg_replace('/[^0-9\+\-\*\/\(\)\.]/', '', $expression) . ';');
return $o;
}
echo do_maths('1+1');发布于 2011-04-27 22:18:36
您可以使用eval() (警告:确保输入的是数学运算,而不是其他任意输入或php代码)。
$input = "3 + (4 - 2 * 8) / 2";
eval('$result = ' . $input . ';');
echo "The result is $result";发布于 2011-04-27 22:34:11
也有类似的问题
你可以试着从php classes http://www.phpclasses.org/package/2695-PHP-Safely-evaluate-mathematical-expressions.html中使用How to evaluate formula passed as string in PHP?:Eval Math
https://stackoverflow.com/questions/5803679
复制相似问题