作者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://www.ptt.cc/bbs/PHP/M.1476988535.A.2FE.html
推 magus: 哈哈,值被倒數第二個改了,因為他還在ref第二個XD 10/21 08:35
→ knives: 最後一個是不是寫錯了阿 10/21 09:06
→ knives: 沒事,我看花了 10/21 09:10
→ Kenqr: 其實官方的document就有提了 10/21 10:41