foreach循环时调用current等函数

clipboard.png

结果:

clipboard.png

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

clipboard.png

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

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

当然,如果数组zval的is_ref为1,则不会拷贝数组了

clipboard.png

或者

clipboard.png

结果:

clipboard.png


web360
838 声望28 粉丝

大家都是凡人,难道你确定你是大神?


引用和评论

0 条评论