[閒聊] froeach pass by reference
今天在寫 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://www.ptt.cc/bbs/PHP/M.1476988535.A.2FE.html
推
10/21 08:35, , 1F
10/21 08:35, 1F
→
10/21 09:06, , 2F
10/21 09:06, 2F
→
10/21 09:10, , 3F
10/21 09:10, 3F
→
10/21 10:41, , 4F
10/21 10:41, 4F
→
10/21 10:41, , 5F
10/21 10:41, 5F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章