Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich einen PHP-Rechner mit dem Shunting Yard-Algorithmus erstellen?
Problem:
Sie möchten einen PHP-Rechner entwickeln, der einfache Algebra auswertet Von Benutzern eingegebene Ausdrücke in Standardnotation, die den Bewertungsprozess anzeigen. Die Herausforderung besteht darin, den Wert des Ausdrucks effizient zu berechnen.
Antwort:
Erwägen Sie die Verwendung des Shunting Yard-Algorithmus wegen seiner Einfachheit und Effizienz bei der Auswertung algebraischer Ausdrücke.
Ausdruck Definitionen:
Erstellen Sie Klassen, um verschiedene Elemente des Ausdrucks darzustellen, wie etwa Klammern, Zahlen, Operatoren usw.:
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 { ... }
Stapelimplementierung:
class Stack { protected $data = array(); // ... Methods for pushing, popping, and peeking from the stack ... }
Vollstrecker Klasse:
Die Executor-Klasse analysiert den Ausdruck mithilfe des Shunting Yard-Algorithmus und wertet ihn aus:
class Math { // ... Fields and methods for parsing, running, and evaluating the expression ... }
Beispiel:
Hier ist ein Beispiel für die Verwendung des Rechners:
$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)
Dieses Beispiel behandelt Gruppierung und Operator Vorrang. Sie können die Implementierung jedoch an Ihre spezifischen Anforderungen anpassen.
Das obige ist der detaillierte Inhalt vonWie kann ich einen PHP-Rechner mit dem Shunting Yard-Algorithmus erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!