php ruft zum Kompilieren die Kompilierungsfunktion zend_compile_file() auf. Die spezifische Implementierung dieser Funktion umfasst tatsächlich zwei Hauptprozesse: lexikalische Analyse (Lex-Implementierung) und Syntaxanalyse (Yacc-Implementierung). Nach Ausführung dieser Funktion: Die Kompilierung des PHP-Skripts ist abgeschlossen. Die Eingabe dieser Funktion ist: PHP-Skriptdatei, und die Ausgabe ist op_array. Einfach ausgedrückt: Der Kompilierungsprozess besteht darin, das Skript in Anweisungen zu zerlegen, die die virtuelle PHP-Maschine verarbeiten kann, und op_array sind diese Anweisungen Es handelt sich lediglich um ein erstelltes Array (dies ähnelt sehr dem Assembler-Code, der von einigen
kompilierten Sprachen generiert wird, und es handelt sich auch um eine Reihe von Befehlen).
Dann ruft die virtuelle PHP-Maschine die Funktion zend_execute() zur Ausführung auf. Die Eingabe dieser Funktion ist das in der Kompilierungsphase oben generierte op_array. Hier wird jeder Befehl analysiert und verarbeitet
. Da es insgesamt etwa 150 Operationsbefehle gibt, müssen diese 150 Befehle verarbeitet werden. Hier stellt sich eine sehr interessante Frage: Wie geht es mit diesen 150 Befehlen um
? Zunächst einmal verfügt jeder Befehl über einen entsprechenden Prozessor zur Verarbeitung. Deshalb: Die virtuelle Maschine wird basierend auf dem Typ jedes Befehls in op_array an den entsprechenden Prozessor zur Verarbeitung verteilt.
Das obige ist der detaillierte Inhalt vonWie PHP erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!