ID: 48561
Updated by: [email protected]
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