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

Reply via email to