Variablenübergabemethoden in PHP-Funktionen: Wertübergabe: Die Funktion empfängt eine Kopie des Variablenwerts und Änderungen an der Kopie wirken sich nicht auf die Originalvariable aus. Übergabe als Referenz: Mithilfe des &-Symbols können Sie als Referenz übergeben und die Funktion kann den Wert der ursprünglichen Variablen direkt ändern.
PHP-Funktions- und Variablenreferenz
Wenn Sie in PHP Variablen als Funktionsparameter übergeben, müssen Sie wissen, wie mit Variablenreferenzen umgegangen wird. Es gibt zwei Arten von Variablenreferenzen: die Übergabe als Wert und die Übergabe als Referenz.
Wertübergabe
Standardmäßig verwendet PHP die Wertübergabe, was bedeutet, dass die Funktion eine Kopie des Variablenwerts erhält. Etwaige Änderungen an dieser Kopie wirken sich nicht auf den Wert der Originalvariablen aus.
function test1($a) { $a += 10; // 修改副本的值 } $a = 10; test1($a); echo $a; // 输出 10,原始值不受影响
Referenzübergabe
Referenzübergabe kann durch Übergabe von Variablenreferenzen in der &-Notation erreicht werden. Dadurch kann die Funktion den Wert der ursprünglichen Variablen direkt ändern.
function test2(&$a) { $a += 10; // 修改原始变量的值 } $a = 10; test2($a); echo $a; // 输出 20,原始值被修改
Praktisches Beispiel
Stellen Sie sich eine Funktion swap()
vor, die die Werte zweier Variablen vertauscht:
function swapByValue($a, $b) { // 值传递,交换副本的值 $temp = $a; $a = $b; $b = $temp; } function swapByReference(&$a, &$b) { // 引用传递,直接交换原始变量的值 list($a, $b) = [$b, $a]; } $x = 10; $y = 20; swapByValue($x, $y); echo "x = $x, y = $y\n"; // x = 10, y = 20 swapByReference($x, $y); echo "x = $x, y = $y\n"; // x = 20, y = 10
Im ersten Beispiel funktioniert das Vertauschen durch Wertübergabe nicht, da das Ändern des Werts der Kopie keine Auswirkung auf das Original hat Variable. Im zweiten Beispiel wird die Übergabe als Referenz verwendet, um den Austausch zu implementieren und so den Wert der ursprünglichen Variablen erfolgreich zu ändern.
Das obige ist der detaillierte Inhalt vonWie gehen PHP-Funktionen mit Variablenreferenzen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!