Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Arrays: Wertübergabe oder Referenzübergabe?

PHP-Arrays: Wertübergabe oder Referenzübergabe?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 21:16:10771Durchsuche

PHP Arrays: Pass by Value or Pass by Reference?

Verarbeitung von Arrays in PHP: Übergabe als Wert oder Referenz

Verstehen Sie bei der Arbeit mit Arrays in PHP, wie diese behandelt werden, wenn sie „new“ zugewiesen werden Variablen oder die Übergabe an Funktionen ist von entscheidender Bedeutung.

Array Zuweisungen

Beim Zuweisen eines Arrays zu einer Variablen (z. B. $b = $a) führt PHP immer eine Wertkopie durch. Das bedeutet, dass Änderungen an der neuen Variablen ($b) keinen Einfluss auf das ursprüngliche Array ($a) haben und umgekehrt. Wenn Sie einen Verweis auf das ursprüngliche Array erstellen müssen, müssen Sie den Referenzoperator ($b =& $a) verwenden.

Arrays an Funktionen übergeben

Wann Ein Array wird als Argument an eine Funktion übergeben und normalerweise nach Wert kopiert. Das bedeutet, dass innerhalb der Funktion vorgenommene Änderungen das ursprüngliche Array nicht verändern. Um ein Array als Referenz zu übergeben, muss die Funktion mit dem &-Symbol vor dem Parameter deklariert werden (z. B. Funktion my_func(& $a)).

Beispielcode

Um dies zu veranschaulichen, betrachten Sie den folgenden PHP-Code:

function my_func($a) {
    $a[] = 30;
}

$arr = array(10, 20);
my_func($arr);
var_dump($arr);

Output (Passed by Wert):

array
  0 => int 10
  1 => int 20

Ausgabe (als Referenz übergeben):

array
  0 => int 10
  1 => int 20
  2 => int 30

Wie gezeigt, wirken sich innerhalb der Funktion vorgenommene Änderungen nur dann auf das Array aus, wenn es wird als Referenz übergeben.

Das obige ist der detaillierte Inhalt vonPHP-Arrays: Wertübergabe oder Referenzübergabe?. 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