Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung zur Verwendung des Referenzsymbols (&) in PHP

Ausführliche Erklärung zur Verwendung des Referenzsymbols (&) in PHP

伊谢尔伦
伊谢尔伦Original
2017-07-17 16:44:472763Durchsuche

Die Referenz in PHP besteht darin, das &-Symbol vor der Variablen, Funktion, dem Objekt usw. hinzuzufügen. Die Referenz in PHP bedeutet: Verschiedene Namen greifen auf denselben Variableninhalt zu.

unterscheidet sich von Zeigern in der C-Sprache. Der Zeiger in der Sprache C speichert einen Verweis auf die Adressvariable, wobei der Inhalt der Variablen im Speicher gespeichert wird.
Mit dem Verweis von PHP können Sie zwei Variablen verwenden, um auf denselben Inhalt zu verweisen.

$a="ABC"; 
$b =&$a; 
echo $a;//这里输出:ABC 
echo $b;//这里输出:ABC 
$b="EFG"; 
echo $a;//这里$a的值变为EFG 所以输出EFG 
echo $b;//这里输出EFG

Funktion Call-by-Adresse
Ich werde nicht auf Details zum Call-by-Adresse eingehen

function test(&$a) 
{ 
$a=$a+100; 
} 
$b=1; 
echo $b;//输出1 
test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 
echo "<br>"; 
echo $b;//输出101

Es sollte beachtet werden, dass, wenn Sie hier testen, ein Es wird ein Fehler auftreten.
Funktionsreferenzrückgabe
Sehen Sie sich zuerst den Code an

function &test() 
{ 
static $b=0;//申明一个静态变量 
$b=$b+1; 
echo $b; 
return $b; 
} 
$a=test();//这条语句会输出 $b的值 为1 
$a=5; 
$a=test();//这条语句会输出 $b的值 为2 
$a=&test();//这条语句会输出 $b的值 为3 
$a=5; 
$a=test();//这条语句会输出 $b的值 为6

Erläuterung:
Was $a=test(); Auf diese Weise handelt es sich nicht um eine Funktionsreferenzrückgabe. Es gibt keinen Unterschied zu gewöhnlichen Funktionsaufrufen. Der Grund dafür ist, dass die PHP-Regelung vorsieht, dass die Referenzrückgabe der Funktion über $a= erfolgt &test();
Was ist eine Referenzrückgabe (PHP-Handbuch) Sagte: Referenzrückgabe wird verwendet, wenn Sie eine Funktion verwenden möchten, um herauszufinden, an welche Variable die Referenz gebunden werden soll.) Dieser Unsinn hat mich nicht verstehen lassen es für eine lange Zeit
Verwenden Sie das obige Beispiel, um es zu erklären:
$a= Der Aufruf einer Funktion in der test()-Methode weist den Wert der Funktion nur $a zu, und alle Änderungen an $a werden durchgeführt hat keinen Einfluss auf $b in der Funktion
. Beim Aufruf einer Funktion in der Methode $a=&test() besteht ihre Funktion darin, auf die Speicheradresse der Variablen $b und die Speicheradresse von $ zu verweisen eine Variable an derselben Stelle
, die das Äquivalent dieses Effekts erzeugt ($a=&b;) Ändern Sie also $a Der Wert ändert auch den Wert von $b, also nach der Ausführung von
$a=&test() ;
$a=5;
, der Wert von $b wird 5.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung des Referenzsymbols (&) in PHP. 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