Ask a Question related to PHP Bugs, Design and Development.
-
eric dot broersma at phil dot uu dot nl #1
#40608 [NEW]: break within foreach causes strange behaviour
From: eric dot broersma at phil dot uu dot nl
Operating system: Sun Solaris
PHP version: 5.2.1
PHP Bug Type: Arrays related
Bug description: break within foreach causes strange behaviour
Description:
------------
A break within a foreach construct may cause an infinite loop when the
foreach construct is nested within another foreach construct, possibly as
a result of the internal array pointer of the array being foreach'ed not
being reset.
This problem did not occur in PHP 5.0.5, but did occur in PHP 5.2.1.
Reproduce code:
---------------
$w = array ( 0, 1 );
echo 'a';
foreach ( $w as $x ) {
echo 'b' . $x;
foreach ( $w as $z ) {
echo 'c' . $z;
break 1;
}
echo 'e' . $x;
}
echo 'f';
Expected result:
----------------
ab0c0e0b1c0e1f
(Behaviour in PHP 5.0.5)
Actual result:
--------------
ab0c0e0b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0!
e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2 b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1 c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0 e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1 b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2 c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0 e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2 b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1 c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0 e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1 b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2 c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0 e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b...
(infinite loop)
(Behaviour in PHP 5.2.1)
--
Edit bug report at [url]http://bugs.php.net/?id=40608&edit=1[/url]
--
Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=40608&r=trysnapshot44[/url]
Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=40608&r=trysnapshot52[/url]
Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=40608&r=trysnapshot60[/url]
Fixed in CVS: [url]http://bugs.php.net/fix.php?id=40608&r=fixedcvs[/url]
Fixed in release: [url]http://bugs.php.net/fix.php?id=40608&r=alreadyfixed[/url]
Need backtrace: [url]http://bugs.php.net/fix.php?id=40608&r=needtrace[/url]
Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=40608&r=needscript[/url]
Try newer version: [url]http://bugs.php.net/fix.php?id=40608&r=oldversion[/url]
Not developer issue: [url]http://bugs.php.net/fix.php?id=40608&r=support[/url]
Expected behavior: [url]http://bugs.php.net/fix.php?id=40608&r=notwrong[/url]
Not enough info: [url]http://bugs.php.net/fix.php?id=40608&r=notenoughinfo[/url]
Submitted twice: [url]http://bugs.php.net/fix.php?id=40608&r=submittedtwice[/url]
register_globals: [url]http://bugs.php.net/fix.php?id=40608&r=globals[/url]
PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=40608&r=php3[/url]
Daylight Savings: [url]http://bugs.php.net/fix.php?id=40608&r=dst[/url]
IIS Stability: [url]http://bugs.php.net/fix.php?id=40608&r=isapi[/url]
Install GNU Sed: [url]http://bugs.php.net/fix.php?id=40608&r=gnused[/url]
Floating point limitations: [url]http://bugs.php.net/fix.php?id=40608&r=float[/url]
No Zend Extensions: [url]http://bugs.php.net/fix.php?id=40608&r=nozend[/url]
MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=40608&r=mysqlcfg[/url]
eric dot broersma at phil dot uu dot nl Guest
-
#40768 [NEW]: nested foreach break -- infinite loop - serious
From: rave235 at gmail dot com Operating system: winxp PHP version: 5.2.1 PHP Bug Type: Scripting Engine problem Bug... -
strange SQL behaviour
Hello, I am running DB2 v7.2 on NT. suppose I ussue following simple SQL stmt: -
Very strange behaviour
Hello All, Please help to answer a question why I cannot access port 6355 in below example. Puting the name of service (mydaemon) instead of port... -
Strange CLI behaviour
Dear all, I've encountered some strange behaviour with PHP (4.3.2) using the CLI-API. When I provide an option in the first line of my script... -
strange foreach behaviour
I have come up against a very strange problem. I currently have no idea how to even approach attempting to fix it... -
tony2001@php.net #2
#40608 [Opn->Fbk]: break within foreach causes strange behaviour
ID: 40608
Updated by: [email]tony2001@php.net[/email]
Reported By: eric dot broersma at phil dot uu dot nl
-Status: Open
+Status: Feedback
Bug Type: Arrays related
Operating System: Sun Solaris
PHP Version: 5.2.1
New Comment:
Cannot reproduce.
Make sure you don't have any zend_extension's like ionCube, Zend
Optimizer, APC, eAccelerator etc.
Previous Comments:
------------------------------------------------------------------------
[2007-02-23 16:49:12] eric dot broersma at phil dot uu dot nl
Description:
------------
A break within a foreach construct may cause an infinite loop when the
foreach construct is nested within another foreach construct, possibly
as a result of the internal array pointer of the array being foreach'ed
not being reset.
This problem did not occur in PHP 5.0.5, but did occur in PHP 5.2.1.
Reproduce code:
---------------
$w = array ( 0, 1 );
echo 'a';
foreach ( $w as $x ) {
echo 'b' . $x;
foreach ( $w as $z ) {
echo 'c' . $z;
break 1;
}
echo 'e' . $x;
}
echo 'f';
Expected result:
----------------
ab0c0e0b1c0e1f
(Behaviour in PHP 5.0.5)
Actual result:
--------------
ab0c0e0b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c 0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e 2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b 1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c 0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e 1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b 2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0!
e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2 b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1 c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0 e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1 b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2 c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0 e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2 b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1 c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0 e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1 b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2 c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b2c0 e2b1c0e1b2c0e2b1c0e1b2c0e2b1c0e1b...
(infinite loop)
(Behaviour in PHP 5.2.1)
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=40608&edit=1[/url]
tony2001@php.net Guest



Reply With Quote

