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
Susan SarandonOriginal
2024-12-10 10:14:20752Durchsuche

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)

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!

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