PHP-Quellcode durchläuft einen Schritt, in dem er in PHP-Opcode kompiliert wird. Diese Idee wurde auf einer Vielzahl von Plattformen implementiert, vor allem mit Java. Theoretisch sind die Sprachentwickler in der Lage, die Sprache von Portabilitätsproblemen zu trennen, indem sie eine separate "virtuelle Maschine" -Laufzeit zum Ausführen der Opcodes haben.
Sie eine Liste von these Opcodes in the manual
In einer typischen PHP-Umgebung ohne Opcode-Caching, die Kompilierung Schritt und den „Laufzeit“ Schritt nicht zu unterscheiden sind, jedoch, wenn Sie einführen eine „Beschleuniger/Opscode Cache finden "Wie bei APC oder dem Zend Platform-Produkt können Sie sehen, dass dies separate Schritte im Prozess sind.
Sobald ein Skript in PHP Opscodes kompiliert wurde, kann es aus dem Cache ausgeführt werden, ohne dass es aus der Quelle neu kompiliert werden muss, wo diese Beschleuniger die Leistung erheblich verbessern können. Wenn Sie sich auf den "Runtime" -Aspekt von PHP konzentrieren, sehen Sie die "interpretierte" Natur von PHP, da sie eine Laufzeitumgebung benötigt, wenn sie mit einer kompilierten/verknüpften Sprache wie c/C++ verglichen wird, die als native läuft Betriebssystemprogramm.
Bei PHP ist das php-Programm das native Betriebssystemprogramm (oder nativ als Modul eines nativen OS-Webservers).
Ähnlich wie Java innerhalb der "Java Virtual Machine (JVM) läuft" PHP-Skripte laufen innerhalb von PHP und enthalten daher nicht die Besonderheiten, wie die Operationen vom Betriebssystem nativ ausgeführt werden.
@Dagon Einfach dort. Die Ergebnisse dieser Forschung würden das OP-Recht dazu führen (http://stackoverflow.com/questions/1514676), das Gegenteil anzeigend. Der Begriff "kompilieren" hat hier einige Feinheiten. –
@Dagon Das ist ziemlich unhöflich für jemanden, der sich geirrt hat. Der Interpreter ist kompiliert, aber das PHP-Skript nicht. Sehen Sie mehr hier: http://stackoverflow.com/questions/1514676/is-php-compiled-or-interpreted – TigerBear
@Dagon Es ist nicht so einfach wie das. Es ist möglich, PHP im herkömmlichen Sinn zu kompilieren, obwohl das keineswegs eine Out-of-the-Box-Funktionalität ist. Bei der Interpretation gibt es Schritte, die als Kompilierung angesehen werden können. In der Tat ist Interpretation selbst Kompilation. Die Unterscheidung zwischen Kompilation und Interpretation wird jedoch vorgenommen, da signifikante Unterschiede bestehen. – Cully