PHP foreach Anweisung per Referenz: Unerwartetes Verhalten bei Wiederverwendung von Iterator

8

Dieser Code erzeugt eine unerwartete Ausgabe:

%Vor%

Ausgabe:

%Vor%

Wenn &$item für die zweite Schleife verwendet wird, funktioniert alles einwandfrei.

Ich verstehe nicht, wie dieser Code den Inhalt von $array beeinflussen würde. Ich könnte berücksichtigen, dass eine implizite unset($header) die letzte Zeile löschen würde, aber woher kommt die doppelte dd ?

    
Frederic Bazin 09.06.2011, 04:06
quelle

1 Antwort

11

Das könnte helfen:

%Vor%

Wie Sie nach der letzten Iteration sehen können, verweist $item auf das vierte Element von $array ( e ).

Danach iterieren Sie über das Array und ändern das vierte Element in das aktuelle . Nach der ersten Iteration der zweiten Schleife wird abcda usw. zu abcdd . Und in der letzten Iteration ändern Sie das vierte Element in 4, als d in d

    
zerkms 09.06.2011, 04:10
quelle