Mir ist grade ein Fehler in PHP 5 aufgefallen.
(dachte erst das liegt an meinem Code und ich hab alles seit gestern umgegraben und sonstwo gesucht und getestet)
Hab das jetzt alles auf diesen Code zusammengeschrumpft,
PHP-Quellcode:
<?php
$arr = array('one', 'two', 'tree', 'four', 'five');
foreach ($arr as &$str) $str = machwas($str);
foreach ($arr as $str) echo $str;
?>
welches als Ergebnis "one two tree four
four" liefert
hierbei ändert sich bei jedem Schritt der letzte Array-Eintrag.
PHP-Quellcode:
<?php
echo '<pre>';
$arr = array(' one ', ' two ', ' tree ', ' four ', ' five ');
print_r($arr);
echo "\n";
foreach ($arr as &$str)
$str = trim($str);
foreach ($arr as $str) {
print_r($arr);
echo "\n$str\n\n";
}
print_r($arr);
?>
So, hatte das jetzt erstmal hier gepostet:
http://www.php.net/manual/de/control...each.php#99280
und hab nun auch die Bug-Abteilung gefunden.
jetzt suche ich aber schon 'ne Weile viele Einträge ab, ob die was mit meinem Problem zu tun haben und hab noch Unmassen vor mir, da ich auch nicht genau weiß nach was ich suchen soll.
Kennt schon jemand das Problem oder hat dazu schon einen Eintrag entdeckt?
Ach ja: Selber hab'sch das in PHP 5.2.4 und 5.3.0 reproduzieren können.
[add]
und nun hab'sch och den Grund für die Änderung (aber k.A. auf was die Referenz zeigt)
PHP-Quellcode:
$arr = array(' one ', ' two ', ' tree ', ' four ', ' five ');
foreach ($arr as &$str) $str = trim($str);
var_dump($arr);
Code:
array(5) {
[0]=> string(3) "one"
[1]=> string(3) "two"
[2]=> string(4) "tree"
[3]=> string(4) "four"
[4]=> &string(4) "five"
}