問題:
您想要開發一個用於計算簡單代數的PHP計算器使用者以標準符號輸入的表達式,顯示評估過程。挑戰在於有效計算表達式的值。
答案:
考慮使用調車場演算法,因為它在計算代數表達式方面簡單且有效率。
表達式定義:
建立類別來表示表達式的不同元素,例如括號、數字、運算符等:
class Parenthesis extends TerminalExpression { ... } class Number extends TerminalExpression { ... } class Addition extends Operator { ... } class Subtraction extends Operator { ... } class Multiplication extends Operator { ... } class Division extends Operator { ... } class Power extends Operator { ... }
堆疊實作:
class Stack { protected $data = array(); // ... Methods for pushing, popping, and peeking from the stack ... }
執行器類別:
執行器類別使用Shunting Yard演算法解析式並計算它:
class Math { // ... Fields and methods for parsing, running, and evaluating the expression ... }
範例:
以下是如何使用計算器的範例:
$math = new Math(); $answer = $math->evaluate('(2 + 3) * 4'); var_dump($answer); // int(20) $answer = $math->evaluate('1 + 2 * ((3 + 4) * 5 + 6)'); var_dump($answer); // int(83)
以下是如何使用計算器的範例:
此範例涵蓋分組和運算子優先。但是,您可以自訂實作以滿足您的特定要求。以上是如何使用調車場演算法建立 PHP 計算器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!