ID: 35485 Updated by: [EMAIL PROTECTED] Reported By: vma1 at abv dot bg -Status: Open +Status: Bogus Bug Type: Arrays related Operating System: Slackware 10.1, kernel 2.4.31 PHP Version: 5CVS-2005-11-30 (snap) New Comment:
Do not modify array in the foreach() loop. Previous Comments: ------------------------------------------------------------------------ [2005-11-30 12:41:39] vma1 at abv dot bg Description: ------------ When using foreach($arr as $index => &$item), the $item reference does not always allow a modification of the referenced element. Reproduce code: --------------- <? $items = array (array (1), array (1)); foreach ($items as $index => &$one_item) { printf ("C1 IDENTICAL: %u\n", $items [$index] === $one_item); each ($items [$index]); printf ("C2 IDENTICAL: %u\n", $items [$index] === $one_item); $one_item = 678; printf ("C3 IDENTICAL: %u\n", $items [$index] === $one_item); } ?> Expected result: ---------------- C1 IDENTICAL: 1 C2 IDENTICAL: 1 C3 IDENTICAL: 1 C1 IDENTICAL: 1 C2 IDENTICAL: 1 C3 IDENTICAL: 1 Actual result: -------------- C1 IDENTICAL: 1 C2 IDENTICAL: 1 C3 IDENTICAL: 1 C1 IDENTICAL: 1 C2 IDENTICAL: 1 C3 IDENTICAL: 0 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35485&edit=1