<?php
$a = array(1, 2, 3, 4, 5);
foreach ($a as $key => $elem) {
echo "$key = $elem"; echo ' = ';
var_dump(current($a));\
}
?>
我运行时得到的输出如下:
0 = 1 = int(2)
1 = 2 = int(2)
2 = 3 = int(2)
3 = 4 = int(2)
4 = 5 = int(2)
在我看来,这是我应该得到的输出?:
0 = 1 = int(1)
1 = 2 = int(2)
2 = 3 = int(3)
3 = 4 = int(4)
4 = 5 = int(5)
我在 $a 上的 for 循环之前执行 current() 并获得 int(1)。因此,似乎是导致它增加的 foreach 循环。但如果是这样,为什么它只做一次呢?
如果我在 for 循环中调用 next() 它会增加,但不会增加。当然 next() 从 int(3) 开始(即 int(2) 之后的值)..