Dieser Artikel teilt Ihnen hauptsächlich die Erklärung der Wertübertragung und Referenz in PHP mit. Ich hoffe, dass er allen helfen kann.
Einführung:
Jede PHP-Variable existiert in einem Variablencontainer namens
"zval"
. Einzval
-Variablencontainer enthält zusätzlich zum Typ und Wert der Variablen auch两个字节
zusätzliche Informationen. Das erste ist"is_ref"
, einbool值
, mit dem ermittelt wird, ob diese Variable zu引用集合
(Referenzsatz) gehört. Durch dieses Byte kann die PHP-Engine gewöhnliche Variablen von Referenzvariablen unterscheiden. Da PHP Benutzern die Verwendung benutzerdefinierter Referenzen durch die Verwendung von & ermöglicht, gibt es auch ein内部引用计数机制
im zval-Variablencontainer, um die Speichernutzung zu optimieren. Das zweite Byte ist"refcount"
und wird verwendet, um die Anzahl der Variablen (auch Symbole genannt) im zval-Variablencontainer指向
darzustellen. Wenn der Wert von"refcount"
1
ist, ist der Wert von „is_ref“ immerFALSE
.
Beispiel:
<?php$a = 10; //将常量值赋给变量,会为a分配内存空间$b = $a; //变量赋值给变量,给b分配了内存空间,并将a变量的类型和值复制一份存储到b的存储空间 $c = &$a; //引用是不会为c分配空间的,c和a是共用一份内存空间数据。
PHP wird sein a Wenn eine Variable einer neuen Variablen zugewiesen wird, wird der neuen Variablen nicht sofort Speicherplatz zugewiesen, sondern es wird ein Verweis auf den Speicherplatz hinzugefügt. Wenn Änderungen an der ursprünglichen oder der neuen Variablen vorgenommen werden, wird ein Speicherplatz für die neue Variable zugewiesen.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonErläuterung der Wert- und Referenzübergabe in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!