#35106 [Com]: nested foreach fails when array variable has a reference

From: Date: Fri, 10 Feb 2006 19:48:06 +0000
Subject: #35106 [Com]: nested foreach fails when array variable has a reference
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-93141@lists.php.net to get a copy of this message
ID: 35106 Comment by: brion at wikimedia dot org Reported By: olympnn at nm dot ru Status: Assigned Bug Type: Scripting Engine problem Operating System: * PHP Version: 5CVS-2005-11-05 (cvs) Assigned To: dmitry New Comment: 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. Previous Comments: ------------------------------------------------------------------------ [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

« previous php.bugs (#93141) next »