Home > Backend Development > PHP Tutorial > 急求:foreache遍历数组问题

急求:foreache遍历数组问题

WBOY
Release: 2016-06-23 14:17:31
Original
976 people have browsed it

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

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

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

 如下图

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


回复讨论(解决方案)

mark  搭车学习下foreach的原理.

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

说错 指向循环的最后一项

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template