あるネチズンが、PHP での給与計算の問題について私に手紙を書きました。前回の記事で賃金を計算する方法について話しましたが、これは既存の式ツールを使用する賢い方法でした。欲しがっている人がいるので、逆ポーランド アルゴリズムを紹介します。
私たちの目標は、次の計算式を達成することです:
次のような計算式があるとします:
<p>$expression = "(F1*F12+10.34)";</p> ログイン後にコピー |
変数の値は次のとおりです:
<p>$expression_value = Array('F1'=>10,'F12'=>20);</p> ログイン後にコピー |
この式の値を計算するクラスを PHP で構築したいと思います。このアプリケーションは主に Web 給与管理で使用され、ユーザーは給与計算式をカスタマイズできます。
<p>$rpn = new Math_Rpn();<br>$rpn->setExpressionValue($expression_value); <br>echo $rpn->calculate($expression,'deg',false); // 即为相应的值</p> ログイン後にコピー |
逆ポーランド語式を解析する方法は、コンパイル原則に含まれています。これは、最初に式をシンボリック配列に分解し、次に逆ポーランド語式を見つけて、最後に取得します。逆ポーランド式に従った結果。
以下の 3 つの機能を投稿しました。実際、本質は Pear の RPN 機能をハッキングしたものです。
りー |