Heim > Backend-Entwicklung > PHP-Tutorial > Wie geht PHP mit Array-Übergabe und Zuweisung per Referenz um?

Wie geht PHP mit Array-Übergabe und Zuweisung per Referenz um?

Susan Sarandon
Freigeben: 2024-12-10 10:14:20
Original
791 Leute haben es durchsucht

How Does PHP Handle Array Passing and Assignment by Reference?

Ü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)
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage