【问题标题】:add math operators in function php [duplicate]在函数php中添加数学运算符[重复]
【发布时间】:2013-10-21 10:51:02
【问题描述】:

我对此有点陌生,但我想知道是否可以将一些动态计算作为参数添加到函数中。

事情在我的函数内部,我以一致的方式格式化东西,但每次我想在参数中添加某种不同的计算。

<?php
function dynamicCalculator($calculation){

 $result = $calculation;

 //some formatting
 return $result;
}

 echo dynamicCalculator('(3x5)+1');

这当然行不通,但如果有人知道它是如何工作的,我很想听听。

【问题讨论】:

标签: php math


【解决方案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】:

使用evaleval("10+2") 应该返回 12。不过请注意,您也可以使用 eval 运行 PHP 代码。

别人有一个similar question on StackOverflow

【讨论】:

    【解决方案4】:

    你可以用这个:

    function dynamicCalculator($calculation) {
       $result = eval($calculation);
       return $result;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 2020-12-13
    • 2017-01-16
    相关资源
    最近更新 更多