php
$arr = [
'a', 'b',
'c', 'd',
];
foreach ($arr as &$each){
echo $each;
}
echo PHP_EOL...php
$arr = [
'a', 'b',
'c', 'd',
];
foreach ($arr as &$each){
echo $each;
}
echo PHP_EOL...仔细看上面的foreach循环, each变量使用了&符号, 这个符号相当与c中的取址
php的foreach会在每次循环时,讲当前元素赋值给each, 然后进入循环体
当foreach遍历完成后, each...变量没有释放而是指向了arr数组中的最后一个元素, 所以在后面给each赋值时, 其实改变的时arr数组的最后一个元素
到此, 流程已经明白了, 下面还原一下最开始的两次foreach过程:
在第一个foreach...var_dump($arr);
}
结果截图如下:
结果与我们分析的完全一致, 至此, 完结
我使用的php版本为: 7.2