Edit report at https://bugs.php.net/bug.php?id=63179&edit=1
ID: 63179
Comment by: notzippy at gmail dot com
Reported by: uli dot staerk at globalways dot net
Summary: foreach: Using variable reference leads to
inconsistent data
Status: Open
Type: Bug
Package: Scripting Engine problem
Operating System: Linux
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
A variable that is the target of a foreach should be intrinsically unset and
not need a manual process to do it.
Previous Comments:
------------------------------------------------------------------------
[2012-09-28 15:16:44] uli dot staerk at globalways dot net
Description:
------------
As you can see from the example, php seems to mix up variables if you use the
reference in a foreach.
Despite the report bug 43806, I still think this is a bug. The variable must be
set when calling foreach and must not be influenced by any previous code.
Test script:
---------------
<?php
$testdata = array(
0 => array('foo' => 'foo'),
1 => array('bar' => 'bar')
);
foreach($testdata as &$value) {}
foreach($testdata as $key => $value) {
if($key == 1) {
print_r($value);
}
}
Expected result:
----------------
Array
(
[bar] => bar
)
Actual result:
--------------
Array
(
[foo] => foo
)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63179&edit=1