ホームページ  >  記事  >  バックエンド開発  >  PHP 逆ポーランド語式と式の計算

PHP 逆ポーランド語式と式の計算

WBOY
WBOYオリジナル
2016-06-13 13:03:031075ブラウズ

PHP 逆ポーランド語表現と式計算

????? 式の計算と言えば、ジョークが思い浮かびます。私は、私たちの PHP 開発フレームワークには、RPN を使用して数式を分析および計算するクラスがあることを彼に紹介しました。それで、彼は私の無知を笑いました。さらに、PHP の EVAL 関数を直接使用することですべての問題を解決できることを証明する一連の証拠がリストされています。

???? おそらく、あなたもこの人に同意するでしょう。それは問題ではありません。 PEER 関数ライブラリを見てみましょう。 PEER 関数ライブラリには RPN クラスもあります。もし今でも私が間違っていると思うなら、PEER の RPN を開発した人たちはもういっぱいいっぱいで我慢できないか、脳がショートしているのでしょう。

???? 実は、そんなことはありません。最も単純な例を挙げると、今月の給与の計算式は、基本給をB、休日給与控除をC、休暇取得日数をVとして、21*B-C*Vとなります。 $B=200、$C=120、$V=3 はすでにわかっています。

???それでは、EVAL の計算を見せていただけますか? JS 変数には $ がないので、JS で十分だと思うかもしれません。問題はここにあります。

???? 解決策は 2 つあります。1 つは式内の変数に $ 記号を追加することです。もう 1 つは、式解析エンジンを作成することです。

??? 式の計算には演算子の優先順位が関係します。一般に、英語の略語である逆ポーランド記法が使用されます。通常の数式は中置記法を使用することを理解しています。

??? 残念ながら、PEER の RPN クラスは粗すぎます。拡張できません。そこで、拡張可能なクラスを作成しました。

??? 興味があれば、ダウンロードしてご覧ください:

??? http://www.phpclasses.org/package/5584-PHP-Evaluate-expressions-in-Reverse-Polish-Notation.html

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。