1. 程式人生 > >關於foreach的引用&;

關於foreach的引用&;

沒用&之前,要改變陣列中的元素是這樣做的⬇️

$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>'; }