#33713 [Opn->Bgs]: Foreach uses the same internal pointer in different iterations of recursive fns
| From: | helly@php.net | Date: | Fri, 15 Jul 2005 20:01:04 +0000 |
| Subject: | #33713 [Opn->Bgs]: Foreach uses the same internal pointer in different iterations of recursive fns | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-81910@lists.php.net to get a copy of this message | ||
ID: 33713
Updated by: helly@php.net
Reported By: bmorel at ssi dot fr
-Status: Open
+Status: Bogus
Bug Type: Scripting Engine problem
-Operating System: Fedora Core 4
+Operating System: *
-PHP Version: 5.0.4
+PHP Version: 5.*
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Use ArrayObject/ArrayIterator instead or as a wrapper around your
arrays.
Previous Comments:
------------------------------------------------------------------------
[2005-07-15 18:41:52] bmorel at ssi dot fr
Description:
------------
Sorry if this is not a bug, but I think the behavior is not normal,
even after searching the net and this bug database.
It seems that, used inside a recursive function, foreach doesn't use
different array pointers for each iteration of the function, but uses
the same at each time. This common pointer is reseted at each foreach()
call.
Reproduce code:
---------------
function recurse($doRecurse = true) {
static $array = array(1,2);
foreach ($array as $value) {
echo $value . PHP_EOL;
if ($doRecurse) recurse(false);
}
}
recurse();
Expected result:
----------------
1
1
2
2
1
2
Actual result:
--------------
1
1
2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33713&edit=1