Bug #63179 [Opn->Dup]: foreach: Using variable reference leads to inconsistent data
| From: | laruence@php.net | Date: | Sat, 29 Sep 2012 02:52:29 +0000 |
| Subject: | Bug #63179 [Opn->Dup]: foreach: Using variable reference leads to inconsistent data | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-173792@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
Updated by: laruence@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