Heim >Backend-Entwicklung >PHP-Problem >So übergeben Sie eine Referenz in PHP

So übergeben Sie eine Referenz in PHP

PHPz
PHPzOriginal
2023-05-07 10:02:07762Durchsuche

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

Schauen Sie sich noch einmal den folgenden Code an:

rrreee

Dieses Beispiel zeigt die Verwendung der Referenzübergabe, um den Austausch der Werte zweier Variablen abzuschließen. Die Funktion swap 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 &amp;-Symbols bei der expliziten Deklaration von Parametern können Sie auch &amp;$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!

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
Vorheriger Artikel:Clearing-Sitzung in PHPNächster Artikel:Clearing-Sitzung in PHP