Heim >Backend-Entwicklung >PHP-Tutorial >Entmystifizierung von Pass-by-Value und Pass-by-Reference in PHP-Funktionsaufrufen

Entmystifizierung von Pass-by-Value und Pass-by-Reference in PHP-Funktionsaufrufen

WBOY
WBOYOriginal
2024-04-16 14:39:011110Durchsuche

Funktionsaufrufe in PHP können als Wert oder als Referenz übergeben werden. Standardmäßig wird ein Wert übergeben, die Funktion erhält eine Kopie des Parameters und Änderungen daran wirken sich nicht auf den Originalwert aus. Die Referenzübergabe wird durch Hinzufügen des &-Symbols vor dem Parameter deklariert, und die Funktion ändert die übergebene Variable direkt. Die Übergabe als Referenz ist nützlich, wenn Sie eine Funktion zum Ändern einer externen Variablen benötigen, beispielsweise eines Array-Elements.

揭秘 PHP 函数调用中的值传递和引用传递

Entmystifizierung von Wertübergabe und Referenzübergabe in PHP-Funktionsaufrufen

Wertübergabe

In PHP verwenden Funktionsaufrufe standardmäßig Wertübergabe. Das heißt, wenn ein Wert als Argument an eine Funktion übergeben wird, erhält die Funktion eine Kopie des Werts. Alle an dieser Kopie vorgenommenen Änderungen haben keinen Einfluss auf den ursprünglichen Wert.

function addValue($number) {
  $number += 10;
}

$value = 10;
addValue($value);
echo $value; // 输出:10

Wie im obigen Beispiel gezeigt, erhält die Funktion eine Kopie der Variablen, wenn $value an die Funktion addValue übergeben wird. Änderungen innerhalb der Funktion wirken sich nur auf die Kopie aus, nicht auf die Originalvariable. $value 传递给 addValue 函数时,函数获取该变量的副本。函数内的修改只影响该副本,不会影响原始变量。

引用传递

有时,我们需要函数直接修改原始变量。这时,可以使用引用传递。要声明引用,请在参数类型声明前添加一个 & 符号。

function addReference(&$number) {
  $number += 10;
}

$value = 10;
addReference($value);
echo $value; // 输出:20

如上例所示,addReference 函数的 $number 参数声明为引用。这意味着函数将直接修改传递的变量。

实战案例

使用引用传递可以简化某些任务。例如,我们有一个包含用户数据的数组,并且需要在函数中对其进行修改。

$users = [
  [
    'id' => 1,
    'name' => 'John Doe',
  ],
];

function changeName(&$user, $newName) {
  $user['name'] = $newName;
}

changeName($users[0], 'Jane Doe');
echo $users[0]['name']; // 输出:Jane Doe

通过将 $user 参数声明为引用,changeName

Übergabe als Referenz

Manchmal benötigen wir eine Funktion, um die ursprüngliche Variable direkt zu ändern. In diesem Fall kann die Referenzübergabe verwendet werden. Um eine Referenz zu deklarieren, fügen Sie vor der Parametertypdeklaration ein &-Symbol hinzu.

rrreee

Wie im obigen Beispiel gezeigt, wird der Parameter $number der Funktion addReference als Referenz deklariert. Dies bedeutet, dass die Funktion die übergebene Variable direkt ändert. 🎜🎜Praktisches Beispiel🎜🎜Die Verwendung der Referenzübergabe kann bestimmte Aufgaben vereinfachen. Wir haben beispielsweise ein Array mit Benutzerdaten und müssen es in einer Funktion ändern. 🎜rrreee🎜Durch die Deklaration des Parameters $user als Referenz kann die Funktion changeName das ursprüngliche Element im Array direkt ändern. 🎜🎜Fazit🎜🎜Das Verständnis von Pass-by-Value und Pass-by-Reference in PHP ist entscheidend für das Schreiben von effizientem und wartbarem Code. Durch die Verwendung von Referenzübergabe können wir unnötiges Kopieren von Variablen vermeiden und Variablen außerhalb der Funktion direkt ändern. 🎜

Das obige ist der detaillierte Inhalt vonEntmystifizierung von Pass-by-Value und Pass-by-Reference in PHP-Funktionsaufrufen. 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