Heim >Backend-Entwicklung >PHP-Problem >So übergeben Sie eine Referenz in PHP
In PHP gibt es zwei Möglichkeiten, Parameter zu übergeben: Übergabe als Wert und Übergabe als Referenz. Die Wertübergabe ist die Standardmethode, was bedeutet, dass Änderungen an Parametern innerhalb einer Funktion keine Auswirkungen auf Variablen außerhalb der Funktion haben. Durch die Referenzübergabe wird die Adresse der Variablen an die Funktion übergeben, sodass Änderungen an den Parametern Auswirkungen auf die Variablen der aufrufenden Funktion haben.
Verwenden Sie in PHP das &-Symbol, um die Übergabe als Referenz darzustellen. Hier ist ein Beispielcode, um die Verwendung von Pass-by-Reference zu veranschaulichen:
function addOne(&$num) { $num++; } $num = 10; addOne($num); echo $num; // 输出 11
Im obigen Code verwendet die Funktion addOne
die &
-Notation, um auf ihren Parameter zu verweisen $ num
, d. h. alle Änderungen an $num
wirken sich auf die Variable aus, die die Funktion aufruft. In der Funktion haben wir 1 zu $num
hinzugefügt. Nach dem Aufruf der Funktion wurde auch der Wert der ursprünglichen Variablen $num
geändert. addOne
使用了 &
符号来引用其参数 $num
,也就是说,对 $num
的任何变化都会影响到调用该函数的变量。在函数中,我们将 $num
加上了 1,调用函数后,原始的变量 $num
的值也被修改了。
再看一下下面的代码:
function swap(&$a, &$b) { $tmp = $a; $a = $b; $b = $tmp; } $a = 1; $b = 2; swap($a, $b); echo $a; // 输出 2 echo $b; // 输出 1
这个例子展示了使用传递引用来完成交换两个变量的值。函数 swap
接收两个参数 $a
和 $b
并且都是按引用传递。在函数内部,我们将 $a
的值保存在 $tmp
中,然后将 $a
的值设置为 $b
,将 $b
的值设置为 $tmp
。调用 swap
函数后,原始的变量 $a
和 $b
的值被交换了。
除了显式地声明参数时使用 & 符号,还可以用 &$var
的方式返回函数的结果:
function &getRef() { $num = 10; return $num; } $numRef = &getRef(); $numRef = 20; echo getRef(); // 输出 20
这个例子展示了如何返回变量的引用。函数 getRef
返回一个 $num
变量的引用,可以看到,在调用 getRef
函数后,我们将引用赋给了 $numRef
变量,并且修改了 $numRef
的值。这样会导致原始的 $num
rrreee
Dieses Beispiel zeigt die Verwendung der Referenzübergabe, um den Austausch der Werte zweier Variablen abzuschließen. Die Funktionswap
empfängt zwei Parameter $a
und $b
und beide werden als Referenz übergeben. Innerhalb der Funktion speichern wir den Wert von $a
in $tmp
und setzen dann den Wert von $a
auf $b , setzen Sie den Wert von <code>$b
auf $tmp
. Nach dem Aufruf der Funktion swap
werden die Werte der ursprünglichen Variablen $a
und $b
ausgetauscht. 🎜🎜Zusätzlich zur Verwendung des &-Symbols bei der expliziten Deklaration von Parametern können Sie auch &$var
verwenden, um das Ergebnis einer Funktion zurückzugeben: 🎜rrreee🎜Dieses Beispiel zeigt, wie Sie einen Verweis auf eine Variable zurückgeben . Die Funktion getRef
gibt einen Verweis auf die Variable $num
zurück. Sie können sehen, dass wir nach dem Aufruf der Funktion getRef
den Verweis auf Variable $numRef
und der Wert von $numRef
wird geändert. Dadurch wird auch der Wert der ursprünglichen Variable $num
geändert. 🎜🎜Es ist zu beachten, dass Sie bei der Referenzübertragung vorsichtig sein müssen, da der Wert der Variablen durch anderen Code geändert werden kann, was die Lesbarkeit und Wartbarkeit des Programms beeinträchtigt. Daher wird empfohlen, Pass-by-Reference nur bei Bedarf zu verwenden. 🎜Das obige ist der detaillierte Inhalt vonSo übergeben Sie eine Referenz in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!