2010-11-18 17 views
2

文字列中の数学関数f(x)を計算することは可能ですか?このような何か:PHP:文字列中の数学関数f(x)を計算する

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

私はPHP.netやGoogleでこのようなタスクのためのライブラリを見つけることができませんが、私は、私はこれを望んでいる最初のものだとは思いませんか?この質問へ

答えて

3

マイ標準の答え、それがアップ作物たび:

は、(式は、ユーザー入力が含まれている場合は特に)はevalを使用するか、または独自の式パーサーを書き込むことによって、車輪の再発明をしないでください。

PHPClassesのevalMathクラスをご覧ください。それはあなたが安全な砂場で望むすべてをする必要があります。

+0

+1 ...数学式パーサーを構築することは大きな学問的な問題です(それほど些細な解決策をもたらす多くの明確なエッジケースがあるためです)。しかし、実用的な問題の面では、それのためのツールが構築されて以来、努力の価値はありません... – ircmaxell

+0

うわー、それは速かった!どうもありがとうございました。私はeval()の存在を知らなかった!私はそれを見てみましょう。 – Woutb21

+0

私は混乱しています。あなたは「evalを使わないでください」と言って、まさにそのことを行うクラスの使用法をアドバイスします。 (ovalの問題を解決する完全に有効な答えですので、evalMathコードで嘔吐しても+1です)) – edorian

関連する問題