看板 PHP 關於我們 聯絡資訊
今天在寫 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