代碼如下
<?php
$arr = [1,2,3];
foreach($arr as &$value) {
}
foreach($arr as $value) {
print_r($arr);
}
輸出結果
Array
(
[0] => 1
[1] => 2
[2] => 1
)
Array
(
[0] => 1
[1] => 2
[2] => 2
)
Array
(
[0] => 1
[1] => 2
[2] => 2
)
原因
第一個循環 $value 使用了引用
第一次循環時 arr[0]的引用
第二次循環時 arr[1]的引用
第二次循環時 arr[2]的引用
第二個循環 arr[2]的引用
第一次循環時 $arr[2] = $arr[0] = 1
第二次循環時 $arr[2] = $arr[1] = 2
第二次循環時 $arr[2] = $arr[2] = 2
溫馨提示
使用foreach 引用時爲了不必要的麻煩 建議使用unset掉引用的變量