關於foreach的引用&;
阿新 • • 發佈:2019-02-16
沒用&之前,要改變陣列中的元素是這樣做的⬇️
$arr = array(1,2,3); foreach ($arr as $k => $v){ $arr[$k]=$v * 2; } // now $arr is array(2, 4, 6)
用了&,是這樣的⬇️
$arr = array(1,2,3); foreach($arr as $k => &$v) { $v = $v * 2; } // now $arr is array(2, 4, 6)
當用了&引用,記得要用unset($v)來將其銷燬 ,或者及時改變變數名,否則會出現以下情況⬇️
$arr = array(1,2,3); foreach($arr as $k => &$v) { $v = $v * 2; } // now $arr is array(2, 4, 6) foreach($arr as $k => $v) { //第1遍迴圈,隱含操作$v=$arr[0]被觸發,由於此時$v仍然是$arr[2]的引用,即相當於$arr[2]=$arr[0],$arr變成2,4,2 //第2遍迴圈,$v=$arr[1],即$arr[2]=$arr[1],$arr變成2,4,4 //第3遍迴圈,$v=$arr[2],即$arr[2]=$arr[2],$arr變成2,4,4 echo "$k", " => ", "$v",'</br>'; }