On Wed, Jan 22, 2003 at 04:12:18PM +0100, Vaclav Dvorak wrote: > Moriyoshi Koizumi wrote: > >I tried to answer this question in the bug report page. > [...] > >1) Each time before entering a foreach loop, php first tries to make a > >copy of > > the array being iterated. > > > >2) In case the array variable is either referenceing another variable or > > referenced by another variable, no copy is made here and the original > > array is used instead. Because of this behaviour, the original's > > internal > > array pointer increases in the loop eventually. > > Yes, I understand this. What I don't understand is WHY is it so? Why is > foreach handling references specially? Why is your point 2) there? >
Oh, I found this issue was pointed out pretty long time ago. - Bug #5052 http://bugs.php.net/5052 - Bug #5270 (deleted?) http://news.php.net/article.php?group=php.dev&article=22668 http://news.php.net/article.php?group=php.dev&article=22672 http://news.php.net/article.php?group=php.dev&article=22673 It seems that the commit I mentioned in the previous mail was just for those problem reports. As no much discussion took place there, all I can guess from them is there was already a fear of breaking BC. Anyway, please search the database first, in order not to post the same kind of bug twice. Moriyoshi -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php