今天在写 foreach 的时候想偷懒用 pass by reference 闪掉指定 index 改值
这件事,就是:
foreach ($array as $k => $v)
$array[$k]['attr'] = 'ok';
改成
foreach ($array as &$v)
$v['attr'] = 'ok';
可是因为很少这样写,想说上网翻一下有没有人踩到什么奇怪的雷,
结果就翻到这一篇 https://goo.gl/bD3ucj
懒得开连结可以直接看以下的 code:
$a = ['zero', 'one', 'two', 'three'];
foreach ($a as &$v) {
}
foreach ($a as $v) {
echo $v.PHP_EOL;
}
输出结果会是:
zero
one
two
two
花了点时间才想通,有点意思 XD
如果要正常化,记得 pass by reference 结束后要 unset ($v) 就可以了