<?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 –