Edit report at https://bugs.php.net/bug.php?id=63179&edit=1
ID: 63179 Updated by: larue...@php.net Reported by: uli dot staerk at globalways dot net Summary: foreach: Using variable reference leads to inconsistent data -Status: Open +Status: Duplicate Type: Bug Package: Scripting Engine problem Operating System: Linux PHP Version: Irrelevant Block user comment: N Private report: N New Comment: dup to #50485 Previous Comments: ------------------------------------------------------------------------ [2012-09-28 21:26:52] notzippy at gmail dot com A variable that is the target of a foreach should be intrinsically unset and not need a manual process to do it. ------------------------------------------------------------------------ [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