2010-11-18 33 views
2

是否可以计算字符串中的数学函数f(x)?事情是这样的:PHP:计算字符串中的数学函数f(x)

$function = '2x+3'; 
$x = 4; 
math_function($function, $x); //Shoud produce 11 

我找不到在PHP.net或与谷歌这样的任务的库,但我不认为我想要这第一个?

回答

3

我的标准回答这个问题时,它作物起来:

不要使用eval(尤其是如果配方中含有用户输入)或通过编写自己的公式解析器推倒重来。

查看PHPClasses上的evalMath类。它应该在安全的沙箱中完成你想要的任何事情。

+0

+1 ...建立一个数学公式分析器是一个很大的学术问题(因为有许多定义好的边界情况会产生一个非平凡的解决方案)。但就实际问题而言,这是不值得的努力,因为有工具为它构建... – ircmaxell 2010-11-18 16:08:46

+0

哇,这很快!非常感谢你。我甚至不知道eval()的存在!我会看看它。 – Woutb21 2010-11-18 16:12:39

+0

我很困惑:你说“不要使用eval”,然后建议使用完全相同的类。 (仍然完全有效的答案,解决ops问题,所以+1,即使evalMath代码让我想呕吐)) – edorian 2010-11-18 16:16:38