<?php
$a = array(1, 2, 3, 4, 5);
foreach ($a as $key => $elem) {
echo "$key = $elem"; echo ' = ';
var_dump(current($a));\
}
?>
运行,当我得到的输出如下:的foreach和电流
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)之后的值)。
你为什么var_dumping呢? – art2
因为我最初在做next()并且返回bool(false)。我做了var_dump()来区分int(0)和bool(false)。 – neubert
为什么在这个例子中current = 2?在运行foreach之前,current = 1 –