作者gpmm (银色)
看板PHP
标题[闲聊] froeach pass by reference
时间Fri Oct 21 02:35:33 2016
今天在写 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) 就可以了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.82.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1476988535.A.2FE.html
1F:推 magus: 哈哈,值被倒数第二个改了,因为他还在ref第二个XD 10/21 08:35
2F:→ knives: 最後一个是不是写错了阿 10/21 09:06
3F:→ knives: 没事,我看花了 10/21 09:10
5F:→ Kenqr: 其实官方的document就有提了 10/21 10:41