foreach循环时调用current等函数
结果:
按照之前说的,foreach先赋值,再移动指针,再执行循环体,第一次结果为2可以理解
为什么三次都是2呢?咋就这么2呢?
因为current函数是按引用传递的函数
在zval笔记中说了,一个zval不能既被引用,又被指向
所以,变量分离,重新拷贝一份数组,循环被拷贝的数组,而此时数组的指针指向第二个单元
当然,如果数组zval的is_ref为1,则不会拷贝数组了
或者
结果:
foreach循环时调用current等函数
结果:
按照之前说的,foreach先赋值,再移动指针,再执行循环体,第一次结果为2可以理解
为什么三次都是2呢?咋就这么2呢?
因为current函数是按引用传递的函数
在zval笔记中说了,一个zval不能既被引用,又被指向
所以,变量分离,重新拷贝一份数组,循环被拷贝的数组,而此时数组的指针指向第二个单元
当然,如果数组zval的is_ref为1,则不会拷贝数组了
或者
结果: