Bug #63179 [Com]: foreach: Using variable reference leads to inconsistent data
| From: | notzippy at gmail dot com | Date: | Fri, 28 Sep 2012 21:26:52 +0000 |
| Subject: | Bug #63179 [Com]: foreach: Using variable reference leads to inconsistent data | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-173789@lists.php.net to get a copy of this message | ||
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