2
是否可以計算字符串中的數學函數f(x)?事情是這樣的:PHP:計算字符串中的數學函數f(x)
$function = '2x+3';
$x = 4;
math_function($function, $x); //Shoud produce 11
我找不到在PHP.net或與谷歌這樣的任務的庫,但我不認爲我想要這第一個?
是否可以計算字符串中的數學函數f(x)?事情是這樣的:PHP:計算字符串中的數學函數f(x)
$function = '2x+3';
$x = 4;
math_function($function, $x); //Shoud produce 11
我找不到在PHP.net或與谷歌這樣的任務的庫,但我不認爲我想要這第一個?
我的標準回答這個問題時,它作物起來:
不要使用eval(尤其是如果配方中含有用戶輸入)或通過編寫自己的公式解析器推倒重來。
查看PHPClasses上的evalMath類。它應該在安全的沙箱中完成你想要的任何事情。
+1 ...建立一個數學公式分析器是一個很大的學術問題(因爲有許多定義好的邊界情況會產生一個非平凡的解決方案)。但就實際問題而言,這是不值得的努力,因爲有工具爲它構建... – ircmaxell 2010-11-18 16:08:46
哇,這很快!非常感謝你。我甚至不知道eval()的存在!我會看看它。 – Woutb21 2010-11-18 16:12:39
我很困惑:你說「不要使用eval」,然後建議使用完全相同的類。 (仍然完全有效的答案,解決ops問題,所以+1,即使evalMath代碼讓我想嘔吐)) – edorian 2010-11-18 16:16:38