首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP解析数学运算

用PHP解析数学运算
EN

Stack Overflow用户
提问于 2011-04-27 19:56:24
回答 6查看 5.4K关注 0票数 6

我正在做一个项目,我需要做一个函数,将解析4个默认的数学运算(加,减,乘,除)。如果函数可以解析括号之间的操作,那就更好了。

因此,函数必须首先检查乘法和除法操作(应该在它解析完括号之间的所有操作之后进行检查,如果它们存在,并且该规则应该适用于括号操作,最大的问题是括号可以包含括号)。在做完所有的乘法和除法运算之后,它应该做所有的加法和减法运算。最终的数字应该由函数返回。

另一个很好的补充是RegExp字符串,它将检查数学运算。

提前感谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-27 22:31:43

这应该是非常安全的:

代码语言:javascript
复制
function do_maths($expression) {
  eval('$o = ' . preg_replace('/[^0-9\+\-\*\/\(\)\.]/', '', $expression) . ';');
  return $o;
}

echo do_maths('1+1');
票数 6
EN

Stack Overflow用户

发布于 2011-04-27 22:18:36

您可以使用eval() (警告:确保输入的是数学运算,而不是其他任意输入或php代码)。

代码语言:javascript
复制
$input = "3 + (4 - 2 * 8) / 2";

eval('$result = ' . $input . ';');

echo "The result is $result";
票数 2
EN

Stack Overflow用户

发布于 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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5803679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档