在php5版本中:
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
打印结果是:
int(1)
int(2)
bool(false)
如果改为:
$array = [0, 1, 2];
foreach ($array as $val) {
var_dump(current($array));
}
打印结果是:
int(1)
int(1)
int(1)
有懂的可以方便告知以上打印结果的原因吗?
属于是 Bug,不要依赖此行为的结果。
从 PHP7.0 开始,foreach 循环不再改变数组内部指针了。