Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Methoden gibt es zum Referenzieren von PHP-Variablen? Zusammenfassung der Methoden des PHP-Variablenreferenzmechanismus

Welche Methoden gibt es zum Referenzieren von PHP-Variablen? Zusammenfassung der Methoden des PHP-Variablenreferenzmechanismus

不言
不言Original
2018-08-18 17:55:323237Durchsuche

In diesem Artikel erfahren Sie, welche Methoden es gibt, um PHP-Variablen zu referenzieren. Diese Zusammenfassung des Referenzmechanismus von PHP-Variablen hat einen gewissen Referenzwert. Freunde in Not können darauf zurückgreifen.

1. Variablenreferenz, „&“ in PHP:

$a  = "hello world";//定义一个变量,下面赋值给$b
$b = $a;            //这一步实际上原理是会将变量$a复制拷贝一份,也就是内存中重新申请一个地址存储变量$b

Hinweis: Wenn Sie in PHP „=“ verwenden, um einen Wert direkt zuzuweisen, wird die Variable auf der rechten Seite tatsächlich nach $b kopiert, wodurch ein Speicherplatz generiert wird. Das Ergebnis kann sein, dass derselbe Inhalt in zwei Kopien gespeichert wird die Erinnerung.

2. Verwenden Sie die Symbole „&“, um

$a  = "hello world";
$b = &$a;

Hinweis: Bei der Verwendung von Referenzen kopiert die PHP-Engine keine Variable. Tatsächlich zeigt sie den Zeiger auf die Adresse von $a im Speicher und $b speichert diesen Zeiger.


Wenn also Referenzen verwendet werden,
den Wert von $b ändert, ändert sich auch $a entsprechend.

$a  = "hello world";
$b = &$a;
$b = "test new value";  //把b的值改掉,a的值也会跟着改变
echo $a;                //输出test new value,因为改变了b的值也会改变a的值。

Bei der Definition von Funktionen sehe ich oft Situationen wie diese:

function test (&$param){
    $param++;
}
$k = 8;
test($k);
echo $k; //结果$k的值被函数里面改变了,输出9。

Hinweis: Vor $param steht eine Referenz, daher werden die übergebenen Parameter nicht in den Speicher kopiert. Stattdessen es verweist direkt auf den ursprünglichen Speicherplatz. Deshalb: Wenn der mit dem Symbol & übergebene Variablenwert geändert wird, wird auch der Wert im ursprünglichen Speicherbereich

geändert .

3. Beim Zerstören von Variablen. Der ursprüngliche Wert wird dadurch nicht geändert.

$a = 'd';
$b = &$a;
$b = 8;   
var_dump($b,$a);   //因为是引用了,所以把b的值改掉,a的值也跟着改为8了。
unset($b);         //调用unset删除b变量,a变量不会删除
var_dump($b,$a);   //输出null和8

Hinweis: Beim Aufruf von unset zum Löschen der $b-Variablen hat die PHP-Engine in der Variablensymboltabelle Folgendes gefunden: die Variable I „$b“ bezieht sich ursprünglich auf die Variable „$a“, die schwer zu löschen ist, da die Variable „$a“ nach dem Löschen nicht mehr vorhanden ist. Daher kopieren wir zuerst die Variable „$a“ und löschen dann die Variable „$b“.


Verwandte Empfehlungen:

php verwendet open, fwrite, um Dateien (Code) in mehreren Formaten zu exportieren

phpExcel in Solution zu Speicherüberlauf beim Exportieren von Dateien

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Referenzieren von PHP-Variablen? Zusammenfassung der Methoden des PHP-Variablenreferenzmechanismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn