Übergabe von Argumenten und Zuweisen von Arrays in PHP
Arrays, eine wichtige Datenstruktur in PHP, werden häufig an Funktionen übergeben oder Variablen zugewiesen. Es ist jedoch wichtig zu verstehen, wie sich diese Operationen auf die zugrunde liegenden Referenzen auswirken.
Arrays als Funktionsargumente
Wenn ein Array als Argument an eine Funktion übergeben wird, ist dies der Fall standardmäßig als Kopie übergeben. Dies bedeutet, dass die Funktion die Kopie selbst bearbeitet, ohne das ursprüngliche Array zu ändern. Angenommen, die Funktion nimmt Änderungen am Array vor; Diese Änderungen werden nicht im ursprünglichen Array außerhalb der Funktion widergespiegelt, es sei denn, die Funktion wird ausdrücklich angewiesen, per Referenz zu arbeiten.
function my_func($a) { $a[] = 30; } $arr = array(10, 20); my_func($arr); var_dump($arr); // Output: array(10, 20)
Um das Array per Referenz zu übergeben und der Funktion zu ermöglichen, das ursprüngliche Array zu ändern, Die Funktion muss wie folgt deklariert werden:
function my_func(& $a) { $a[] = 30; }
Jetzt werden die innerhalb der Funktion vorgenommenen Änderungen im ursprünglichen Array außerhalb von widergespiegelt Funktion.
Arrays zuweisen
Beim Zuweisen eines Arrays zu einer neuen Variablen erstellt die Zuweisung eine neue Kopie des Arrays, sofern nicht der Referenzoperator & verwendet wird. Dies bedeutet, dass das ursprüngliche Array und die neu zugewiesene Variable getrennt sind und Änderungen an einer Variablen keine Auswirkungen auf die andere haben.
$a = array(1, 2, 3); $b = $a; $b[] = 4; // $a still contains the original array (1, 2, 3)
Für die Zuweisung per Referenz muss der Referenzoperator & verwendet werden:
$a = array(1, 2, 3); $b = & $a; $b[] = 4; // Both $a and $b now contain (1, 2, 3, 4)
Das obige ist der detaillierte Inhalt vonWie geht PHP mit Array-Übergabe und Zuweisung per Referenz um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!