Mit der schnellen Entwicklung des Internets wurde PHP als beliebte serverseitige Skriptsprache in verschiedenen Entwicklungsprojekten häufig verwendet. Viele Entwickler wissen jedoch nur sehr wenig über den internen Arbeitsmechanismus von PHP. Dieser Artikel bietet Entwicklern einen Anfänger-Leitfaden, der ein umfassendes Verständnis des PHP-Kernels erlangen möchte, mit dem Sie die Geheimnisse des PHP-Kernels von Grund auf erforschen können.
Der Kompilierungsprozess von PHP wandelt zunächst den Quellcode über einen Lexer in Token um, der dann diese Token in abstrakte Syntaxbäume (ASTS) umwandelt und schließlich durch den Interpreter oder Compiler ausführbarer Maschinencode generiert.
Die Ausführung von PHP ist in zwei Phasen unterteilt: Ausführung der Interpretation und Zusammenstellung. Während der Interpretationsausführungsphase analysiert PHP die Quellcodezeile nach Leitung und führt die entsprechenden Vorgänge aus. In der Kompilierungs- und Ausführungsstufe wird der Quellcode in den Zwischencode (OPCODE) konvertiert und im Speicher gespeichert, um die Ausführungseffizienz zu verbessern.
Die Zend -Engine ist der Kern des PHP -Kernels, der für die Konvertierung von PHP -Quellcode in Intermediate -Code verantwortlich ist. Als Ausführungsmaschine von PHP ist die Zend -Engine die Seele der PHP -Sprache.
Der PHP -Kernel verfügt über einen leistungsstarken Speichermanagementmechanismus, mit dem die Zuordnung und das Recycling von Datenstrukturen wie Variablen, Funktionen und Klassen effizient verwaltet werden.
Der PHP -Kernel unterstützt Erweiterungsmechanismen und ermöglicht es Entwicklern, benutzerdefinierte Erweiterungsmodule zu erstellen, um die PHP -Funktionalität zu verbessern. Erweiterungen können dynamisch geladen oder deinstalliert werden und interne PHP -Funktionen aufrufen.
Der PHP -Kernel verteilt Speicher für jede Variable und befreit den Speicher, wenn die Variable nicht mehr verwendet wird. Der folgende Beispielcode zeigt, wie PHP Variablen erstellt und zerstört:
<?php $a = "Hello"; // Erstellen Sie eine String -Variable unset($a); // Variablen zerstören ?>
PHP verwendet einen Referenzzählmechanismus, um die Anzahl der Referenzen einer Variablen zu verfolgen. Wenn auf eine Variable verwiesen wird, nimmt die Referenzzahl zu; Wenn es keine Referenz gibt, nimmt die Referenzzahl ab. Nur wenn die Referenzzahl Null ist, befreien PHP den entsprechenden Speicherplatz. Beispiele sind wie folgt:
<?php $a = "Hello"; // Erstellen Sie eine String -Variable $b = $a; // Die Zuordnung zwischen Variablen ist ein Referenzpass unset($a); // Variablen zerstören ?>
Zusätzlich zur Referenzzählung implementiert der PHP -Kernel auch einen Müllsammlungsmechanismus, um den nutzlosen Speicherplatz regelmäßig zu befreien. Der Garbage Collector scannt den Speicher, bestimmt Variablen, die nicht mehr verwendet werden, und befreit das Gedächtnis.
In diesem Artikel wird kurz die Kernkonzepte der zugrunde liegenden Entwicklung von PHP7 eingeführt und konzentriert sich auf die Struktur des PHP -Kernels und des Gedächtnismanagementmechanismus. Ich hoffe, dass diese Inhalte Entwicklern helfen können, die zugrunde liegenden Arbeitsprinzipien von PHP zu verstehen und ihr Interesse an der weiteren Erforschung des PHP -Kernels zu fördern.