Der Unterschied zwischen Wertübergabe und Referenzübergabe in PHP
Variablenübergabe nach Wert bedeutet: „Übergabe“ des Werts von a Variable zu einer anderen Variablen.
Es gibt nur zwei Möglichkeiten, Daten zu übertragen: Wertübertragung und Referenzübertragung. Standardmäßig verwendet PHP die Wertübergabe.
Werfen wir einen Blick auf die Unterschiede zwischen diesen beiden Liefermethoden:
Wertlieferung:
Das heißt kopieren den „Datenwert“ der Variablen auf der rechten Seite selbst und weisen Sie ihn dann der Variablen auf der linken Seite zu
Während des Passl-by-Value-Prozesses werden die formalen Parameter der aufgerufenen Funktion als lokal verwendet Teile der aufgerufenen Funktion bedeuten, dass Speicherplatz auf dem Stapel geöffnet wird, um den Wert des von der aufrufenden Funktion eingegebenen tatsächlichen Parameters zu speichern und so zu einer Kopie des tatsächlichen Parameters zu werden. Das Merkmal der Wertübertragung besteht darin, dass jede Operation der aufgerufenen Funktion an den formalen Parametern als lokale Variable ausgeführt wird und sich nicht auf den Wert der tatsächlichen Parametervariablen der aufrufenden Funktion auswirkt.
Beispiel:
$v1 = 1; $v2 = $v1;
Nach der Wertübergabe haben die beiden Variablen keinen Einfluss aufeinander und sind unabhängig voneinander
<?php //值传递 $v1 = 10; $v2 = $v1; echo "v2的值为:".$v2;//10 $v1 = 11; echo "<br>v2的值为:".$v2;//10
Übergabe als Referenz:
besteht darin, die Referenzbeziehung der Variablen rechts zu den Daten an die Variable links zu übergeben
Obwohl die formalen Parameter der aufgerufenen Funktion während des Pass-by-Reference-Prozesses auch Speicherplatz auf dem Stapel als lokale Variablen freigeben, wird zu diesem Zeitpunkt die Adresse der tatsächlichen Parametervariablen gespeichert, die von der aufrufenden Funktion eingegeben wurde . Jede Operation der aufgerufenen Funktion an den formalen Parametern wird als indirekte Adressierung verarbeitet, d. h. der Zugriff auf die tatsächlichen Parametervariablen in der aufrufenden Funktion erfolgt über die im Stapel gespeicherte Adresse. Aus diesem Grund wirkt sich jede Operation, die die aufgerufene Funktion an den formalen Parametern ausführt, auf die aufrufende Funktion aus.
<?php //引用传递 $v1 = 10; $v2 = &$v1; echo "v2的值为:".$v2;//10 $v1 = 11; echo "<br>v2的值为:".$v2;//11
Zusammenfassung:
Die hier untersuchte Hauptsache ähnelt der Wertübergabe . Zitierte Frage. Verstehen Sie, dass durch die Übergabe eines Werts der Speicherplatz erneut geöffnet wird, was dem Kopieren des ursprünglichen Werts entspricht und unabhängig vom ursprünglichen Wert ist. Durch die Übergabe einer Referenz (Zeiger) wird nur ein Zeiger auf den ursprünglichen Speicherblock hinzugefügt. Wenn sich der Wert der Referenz ändert, wird der Wert der Speicheradresse geändert, auf den verwiesen wird, und alle Verweise, auf die verwiesen wird, haben sich geändert.
Das obige ist der detaillierte Inhalt vonEs gibt zwei Möglichkeiten, Werte in PHP zu übergeben: Wertübergabe und Referenzübergabe.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!