foreach循环时调用current等函数

foreach循环时调用current等函数数组

clipboard.png

结果:函数

clipboard.png

按照以前说的,foreach先赋值,再移动指针,再执行循环体,第一次结果为2能够理解
为何三次都是2呢?咋就这么2呢?
由于current函数是按引用传递的函数spa

clipboard.png

在zval笔记中说了,一个zval不能既被引用,又被指向指针

因此,变量分离,从新拷贝一份数组,循环被拷贝的数组,而此时数组的指针指向第二个单元ip

固然,若是数组zval的is_ref为1,则不会拷贝数组了it

clipboard.png

或者class

clipboard.png

结果:变量

clipboard.png