Heim > Backend-Entwicklung > PHP-Problem > Was ist der Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP?

Was ist der Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP?

青灯夜游
Freigeben: 2023-02-27 07:10:02
Original
3197 Leute haben es durchsucht

Was ist der Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP?

Wertübertragung: Innerhalb des Funktionsumfangs hat eine Änderung des Variablenwerts keinen Einfluss auf den Wert der Variablen außerhalb der Funktion.

Übergabe per Referenz: Innerhalb des Umfangs einer Funktion werden alle Änderungen am Wert auch außerhalb der Funktion widergespiegelt, da die Übergabe per Referenz die Speicheradresse übergibt.

Geben Sie zwei Codeteile ein und Sie können den Unterschied zwischen den beiden sehen. Lassen Sie uns das Wesentliche anhand des Phänomens erkennen.

function sum($a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//10
Nach dem Login kopieren
rrree

Der Unterschied zwischen den beiden Codeteilen liegt in den Parametern der Funktion Die eine besteht darin, den Wert $ a zu übergeben, und die andere darin, die Referenz & $ a zu übergeben. Das Ergebnis ist, dass sich der Wert von $ a nach der Übergabe nicht ändert die Referenz. Kinder, die hier die C-Sprache gelernt haben, werden verstehen, was vor sich geht. Was auf den Stapel gelegt wird, ist eine Kopie der Referenz.

Da die Referenz auf eine bestimmte Variable verweist, ist die Operation an der Referenz tatsächlich die Operation an der Variablen, auf die sie verweist. (Die Funktion entspricht der Übergabe eines Zeigers, außer dass eine Dereferenzierung nicht erforderlich ist.) & ist ein Symbol, das auf eine Variablenadresse zeigt. Der formale Parameter &$a in der Funktionssumme ist tatsächlich der tatsächliche Parameter $a, also übergeben Summieren Sie es und führen Sie eine +-Operation aus. Nach der +-Operation ändert sich tatsächlich der Wert des tatsächlichen Parameters $a, das war’s.

Erklärung:

Der Wert des ursprünglichen Parameters bei der Wertübergabe bleibt nach dem Aufruf anderer Funktionen der ursprüngliche Wert, während die Referenzübergabe den ursprünglichen Wert ändert. Wenn bei der Übergabe von Werten gemäß der Wertübergabemethode der ursprüngliche Wert geändert werden muss, muss der Code kopiert werden. Wenn der Wert groß genug ist oder es sich um eine große Zeichenfolge handelt, wird der Code immer größer repetitiv, während die Übergabe als Referenz erfolgt Es ist nicht erforderlich, PHP-Code zu kopieren, was einen großen Vorteil bei der Verbesserung der Leistung hat.

Weitere PHP-Kenntnisse finden Sie auf der chinesischen PHP-Website!

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage