PHP 5.x foreach内部数组指针问题

时间:2019-01-23 10:24:09

标签: php arrays

让我们看看这个循环:

$tomb = [1, 2, 3];
foreach ($tomb as $x) {
    echo $x . '<br/>';
}
var_dump(current($tomb));

它显示:

1
2
3
bool(false)

是正确的,因为内部指针在每次迭代时都会前进,并最终指向数组,因此current()返回false。

但这是

$tomb = [1, 2, 3];
foreach ($tomb as $x) {
    echo $x . ' : ' . current($tomb) . '<br/>';
}
var_dump(current($tomb));

显示:

1 : 2
2 : 2
3 : 2
int(2)

为什么?内部指针并非在每次迭代时都前进,只能一次。在current()下的文档说:“它不会移动指针 n”。为什么内部指针只前进一个,而不是所有迭代?为什么current()影响内部指针?

0 个答案:

没有答案