Heim >Backend-Entwicklung >PHP-Tutorial >Was passiert, wenn Referenzvariablen in einer PHP-Foreach-Schleife verwendet werden?
Referenzvariable in PHP Foreach
Im angegebenen Code entsteht das Problem durch die Verwendung von Referenzvariablen in der ersten foreach-Schleife. Hier ist eine Erklärung:
$a = ['zero', 'one', 'two', 'three']; foreach ($a as &$v) { // $v is a reference to the current array element } foreach ($a as $v) { echo $v . PHP_EOL; }
In PHP können Variablen normale Variablen oder Referenzvariablen sein. Normale Variablen enthalten den Wert der Daten, während Referenzvariablen auf den Speicherort der Daten verweisen.
In der ersten Schleife gilt $v = &$a[0]; Daher wird $v zu einer Referenz auf das erste Element des Arrays, „Null“. Das bedeutet, dass alle Änderungen an $v in $a[0] widergespiegelt werden und umgekehrt.
Jetzt haben wir in der zweiten Schleife $v = 'two'. Da $v eine Referenzvariable ist, ändert diese Operation auch das entsprechende Element im Array, $a[3].
Zuletzt sehen wir in der zweiten foreach-Schleife die Ausgabe, wenn wir über jedes Element iterieren :
Dies zeigt die Auswirkung der Verwendung von Referenzvariablen in einer foreach-Schleife, die zur Wiederholung des letzten in der ersten Schleife aktualisierten Werts führt.
Das obige ist der detaillierte Inhalt vonWas passiert, wenn Referenzvariablen in einer PHP-Foreach-Schleife verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!