这是一个好奇的问题,关于foreach在PHP中实现该方法背后的原因.
考虑:
$arr = array(1,2,3);
foreach ($arr as $x) echo current($arr) . PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
这将输出:
2
2
2
Run Code Online (Sandbox Code Playgroud)
我明白将foreach数组指针倒回到开头; 但是,为什么它只增加一次呢?魔术盒里面发生了什么?这只是一个(丑陋的)人工制品吗?
感谢@NickC -为别人好奇zval和refcount,您可以在基础读到这里
php ×1