Heim > Artikel > Backend-Entwicklung > PHP7-Kernelanalyse 4 lokale Variablen, globale Variablen, Konstanten
Der Inhalt dieses Artikels befasst sich mit lokalen Variablen, globalen Variablen und Konstanten der PHP7-Kernelanalyse 4. Jetzt können Freunde in Not darauf verweisen
Lokal Variablen
Lokale Variablen in PHP werden in der zend_execute_data-Struktur zugewiesen. Jedes Mal, wenn zend_op_array ausgeführt wird, werden zu Beginn der Ausführung neue zend_execute_data generiert und am Ende freigegeben Ausführung. Dies ist der Lebenszyklus der lokalen Variablen.
Lese- und Schreibvorgänge: Lokale Variablen werden über die zur Kompilierungszeit ermittelte Anzahl gelesen und geschrieben
2 Statische Variablen
Der Speicherort statischer Variablen: zend_op_array->static_variables, dies ist eine Hash-Tabelle, daher unterscheiden sich statische Variablen in PHP von gewöhnlichen lokalen Variablen. Sie werden nicht im Ausführungsbereich zend_execute_data, sondern im Hash zugewiesen Tabelle Das Formular wird in zend_op_array gespeichert. Statische Variablen werden nur einmal initialisiert. Hinweis: Ihre Initialisierung erfolgt in der Kompilierungsphase und nicht in der Ausführungsphase. Diese Funktion bedeutet auch, dass der Anfangswert einer statischen Variablen keine Variable sein kann, zum Beispiel: static $count = $xxx; Eine solche Definition meldet einen Fehler
Lese- und Schreibvorgänge: Rufen Sie zunächst den entsprechenden zval aus static_variables entsprechend dem Variablennamen ab, ändern Sie ihn dann in einen Referenztyp und weisen Sie ihn einer lokalen Variablen zu, d. h Sagen wir, static $count = 4; enthält zwei Operationen, streng genommen ist $count keine echte statische Variable, sondern nur eine lokale Variable, die auf eine statische Variable zeigt. Die tatsächliche Operation bei der Ausführung ist: $count = & static_variables["count" ];
3. Globale Variablen
Globale Variablen Sie sind während der gesamten Anforderungsausführung immer vorhanden und werden in EG (executor_globals, Zend-Executor-bezogene globale Variablen) in der symbol_table gespeichert. Dies ist auch eine Hash-Tabelle, in der alle globalen Variablen im aktuellen Bereich gespeichert werden Sie müssen der symbol_table des EG hinzugefügt werden, bevor die Ausführung von zend_execute_ex beginnt.
Lese- und Schreibvorgänge: Wie der Zugriff auf statische Variablen konvertieren auch globale Variablen den ursprünglichen Wert in eine Referenz und erstellen dann eine lokale Variable im Gültigkeitsbereich von globaler Import, um auf die Referenz zu verweisen
4. Konstanten
Konstanten werden in der zend_constants-Hash-Tabelle von EG gespeichert und auch darauf zugegriffen. Durchsuchen Sie die Hash-Tabelle direkt nach dem Konstantennamen
typedef struct _zend_constant { zval value; //常量值 zend_string *name; //常量名 } zend_constant;
Verwandte Empfehlungen:
PHP7-Kernel-Analyse 1 CGI und FastCGI
PHP7 Kernel Analysis 2 I/O Model
PHP7 Kernel Analysis 3 Variablen
Das obige ist der detaillierte Inhalt vonPHP7-Kernelanalyse 4 lokale Variablen, globale Variablen, Konstanten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!