#35106 [Asn->Csd]: nested foreach fails when array variable has a reference

From: Date: Wed, 10 Jan 2007 16:01:36 +0000
Subject: #35106 [Asn->Csd]: nested foreach fails when array variable has a reference
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-107431@lists.php.net to get a copy of this message
 ID:               35106
 Updated by:       dmitry@php.net
 Reported By:      olympnn at nm dot ru
-Status:           Assigned
+Status:           Closed
 Bug Type:         Scripting Engine problem
 Operating System: *
 PHP Version:      5CVS-2005-11-05 (cvs)
 Assigned To:      dmitry
 New Comment:

Fixed in CVS HEAD and PHP_5_2


Previous Comments:
------------------------------------------------------------------------

[2006-02-10 20:48:04] brion at wikimedia dot org

Note that the same happens with global variables accessed 
from a function with the 'global' statement. Since globals 
work via references, this seems to be the same issue.

This was closed as "won't fix" in 2003:
http://bugs.php.net/bug.php?id=26396

I sincerely hope the opinion has changed in the intervening 
time, as it's pretty clearly poor behavior.

------------------------------------------------------------------------

[2005-11-05 16:37:20] sniper@php.net

Verified. Dmitry, check this out.

------------------------------------------------------------------------

[2005-11-04 16:57:11] olympnn at nm dot ru

Description:
------------
When I execute the code, it seems that the outer foreach is executed
only once. When I comment any of lines marked *, the (outer) foreach
executes twice.

This bug seems to be very like to bug # 21702, but here the situation
is much more strange: I do not use $b in foreaches at all! So it's very
strange that the foreach behavior differs when the array was referenced
sometime or not.

Thanks.

Reproduce code:
---------------
<?
$a=array("1","2");
$b=&$a;//*
foreach($a as $i){
    print($i);
    foreach($a as $p);//*
}
?>

Expected result:
----------------
12

Actual result:
--------------
1


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35106&edit=1


Thread (6 messages)

« previous php.bugs (#107431) next »