首頁  >  文章  >  後端開發  >  急求:foreache遍历数组问题

急求:foreache遍历数组问题

WBOY
WBOY原創
2016-06-23 14:17:31962瀏覽

foreach遍历的是对原数组的拷贝,我想问一下高手们 foreach在遍历时是先对原数组拷贝后再遍历还是随着指针一个个往下移动 一个个保存值的信息与键的信息 然后执行徇环输出?

我是一个初学者 上面是我们老师讲的foreach执行顺序图 如果按照老师所讲的这个图的话 那么就是随着指针一个个往下移 一个个健值的复制然后输出。

可是在foreach循环过程中对原数组进行更改 老师又说如果对原数组没有进行写操作Php内部优化是不会真正地对原数组进行了拷贝 如果进行了写操作就会对原数组进行了一份真的拷贝 我的疑问是 在进行foreach循环时指针本身就会移动 最后移动到非法位置 而为什么在循环过程中对原数组进行了拷贝 而原数组的指针没有动呢?

 如下图

上图当下标为1时 根据foreach循环图 指针会指向下标2的元素 可是当下标为1时会对原数组进行拷贝 拷贝的过程中不是指针会移动的吗 而这里为什么指针指向的却是进行写操作时指针所指向的元素呢?求解 急 谢谢各位了!


回复讨论(解决方案)

mark  搭车学习下foreach的原理.

一直不懂这些,  在我眼里foreach()后的current()指向数组中的最后一项不是很正常的吗

说错 指向循环的最后一项

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn