Ich habe etwas seltsam, eine Hoffnung, jemand kann erklären, was passiert ist. Ich habe es für die Wiedergabe auf dem PHP-Version auf den folgenden Fall eingekocht 5.3.10-1ubuntu3.21:PHP-Array durch Verweis persists
$lines = array("foo" => "bar");
foreach ($lines as &$line) { } // Trouble-causer
$temp = $lines;
foreach ($lines as $key => $line) {
$lines[$key] = "test";
}
print_r($lines);
print_r($temp);
Das erwartete Ergebnis dieser, da ich nicht auf $temp
arbeiten bin, ist
Array
(
[foo] => test
)
Array
(
[foo] => bar
)
Aber das tatsächliche Ergebnis ist
Array
(
[foo] => test
)
Array
(
[foo] => test
)
Wenn ich die Linie Trouble-causer
es wie erwartet funktioniert markiert entfernen. Irgendwie bleibt die Tatsache, dass ich $lines
Elemente per Referenz fuhr, in der nächsten Iteration bestehen. Ist das zu erwarten?
Ihr tatsächliches Ergebnis ist irrelevent, da Sie die gleiche Taste 2 mal haben! –