Just came across this bug recently in a PHP app. Not sure what's going on.
Basically, it shows up when using a combination of two foreach
(one with &, one without).
Here's a test code that reproduce the problem:
$items = array(
array('id'=>1, 'name'=>'foo', 'value'=>150),
array('id'=>2, 'name'=>'bar', 'value'=>190)
);
foreach($items as &$item)
{
$item['percentage'] = $item['value'] * 0.75;
}
var_dump($items); // All Good
foreach($items as $item)
{
var_dump($item); // Shows 1st item twice
}
The second foreach
loop runs the block twice, as expected, but $item
remains stuck on the first item.
I understand this is likely caused by the use of the reference &
in the first loop but I don't see why it should behave like this..
Any idea? is that a bug?
Getting the same result on 5.3.8, 5.3.10 & 5.4
No comments:
Post a Comment