ID: 48561 Updated by: j...@php.net Reported By: huf at nws dot hu -Status: Open +Status: Bogus Bug Type: Arrays related Operating System: linux 2.6 PHP Version: 5.2.9 New Comment:
This has been reported as bug many times, it's also documented as being expected behaviour..RTFM. Previous Comments: ------------------------------------------------------------------------ [2009-06-15 18:20:23] huf at nws dot hu code to reproduce should be like: <?php $array = array(1, 2, 3); foreach ($array as &$a) { } var_dump($array); foreach ($array as $a) { } var_dump($array); ------------------------------------------------------------------------ [2009-06-15 18:16:33] huf at nws dot hu Description: ------------ it looks like foreach (var as &val) syntax leaves a refecence alive after the last iteration. calling a subsequent foreach (var as val) (same variable being used to iterate, but not as a ref now), the reference from the first foreach is used to update the array... Reproduce code: --------------- <?php $array = array(1, 2, 3); foreach ($array as &$a) { } unset($a); var_dump($array); foreach ($array as $a) { } var_dump($array); Expected result: ---------------- $array unchanged Actual result: -------------- $array changed. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=48561&edit=1