在函数php中添加数学运算符[重复]
Posted
技术标签:
【中文标题】在函数php中添加数学运算符[重复]【英文标题】:add math operators in function php [duplicate] 【发布时间】:2013-10-21 10:51:02 【问题描述】:我对此有点陌生,但我想知道是否可以将一些动态计算作为参数添加到函数中。
事情在我的函数内部,我以一致的方式格式化东西,但每次我想在参数中添加某种不同的计算。
<?php
function dynamicCalculator($calculation)
$result = $calculation;
//some formatting
return $result;
echo dynamicCalculator('(3x5)+1');
这当然行不通,但如果有人知道它是如何工作的,我很想听听。
【问题讨论】:
***.com/questions/1015242/… how to make a calculator in php 【参考方案1】:您正在寻找的是 eval 函数。
eval('$result = (3*5)+1');
但请注意确保您没有将可能有害的代码传递给该函数。
【讨论】:
非常感谢,我不知道这个 eval 函数,但它确实听起来很“邪恶”:) 干杯!【参考方案2】:您正在寻找 RPN(反向波兰表示法)
这是一个例子
http://pear.php.net/package/Math_RPN/
这将允许您使用
$expression = "(2^3)+sin(30)-(!4)+(3/4)";
$rpn = new Math_Rpn(); echo $rpn->calculate($expression,'deg',false);
而且不必使用 Eval
【讨论】:
建议图书馆不是答案。请包含有效代码,否则请删除并作为评论发布。 更新了代码示例 非常感谢。我会看看这个库【参考方案3】:使用eval
。 eval("10+2")
应该返回 12。不过请注意,您也可以使用 eval
运行 PHP 代码。
别人有一个similar question on ***。
【讨论】:
【参考方案4】:你可以用这个:
function dynamicCalculator($calculation)
$result = eval($calculation);
return $result;
【讨论】:
注意:在文档 php.net/manual/en/function.eval.php 中提到这是危险的,因为各种 PHP 代码都可能被偷运到$calculation
。以上是关于在函数php中添加数学运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章