Edit report at https://bugs.php.net/bug.php?id=62901&edit=1

 ID:                 62901
 Comment by:         larue...@php.net
 Reported by:        david at grudl dot com
 Summary:            foreach unexpectedly advances the internal array
                     pointer
 Status:             Not a bug
 Type:               Bug
 Package:            Variables related
 PHP Version:        5.4.6
 Block user comment: N
 Private report:     N

 New Comment:

s ,write on copy, copy on write,  ;<


Previous Comments:
------------------------------------------------------------------------
[2012-09-13 02:44:38] larue...@php.net

the same, although it is *copy* of a array, but still the same zval, PHP using 
"write on copy".  but the internalPointer's change is not considered as "write" 
here.

------------------------------------------------------------------------
[2012-09-13 01:51:19] david at grudl dot com

The point is: the iteration is not started on $this->arr, but it is started on 
array returned from method getArr(). 

Foreach resets internal array pointer of completely different array.

------------------------------------------------------------------------
[2012-08-24 02:51:39] larue...@php.net

"When foreach first starts executing, the internal array pointer is 
automatically 
reset to the first element of the array. "  that means foreach change the 
internal 
potinter of an array.

http://us3.php.net/manual/en/control-structures.foreach.php

------------------------------------------------------------------------
[2012-08-24 01:27:07] david at grudl dot com

Maybe this is not a bug, but i have read documentations carefully and there is 
nothing about this. Could you send a link?

And one question: why function reset() uses reference, if there is no need to 
use reference to advance internal array pointer?

------------------------------------------------------------------------
[2012-08-23 15:37:32] larue...@php.net

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

please see the note at : http://us3.php.net/manual/en/control-
structures.foreach.php

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=62901


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

Reply via email to