php的foreach使用&引用数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留该如何理解,不太明白。
<?php
$arr = array(1, 2, 3, 4, 5, 6);
foreach ($arr as &$value) {
$value = $value * 2;
}
print_r($arr);
echo "<br>";
// $arr is now array(2, 4, 6, 8,10,12)
//unset($value); // 最后取消掉引用
foreach ($arr as $value) {
echo $value."<br>";
}
?>
输出:
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 [5] => 12 )
2
4
6
8
10
10
我不太明白$arr已经改变了,为啥我再次打印的时候最后一个跟倒数第二个都是10呢?为啥最后一个不是12,这个引用是怎么理解的。
你好!
希望对你有帮助!
追问好的,我明白了,谢谢,你的意思是第二个foreach每次循环结束后,$arr数组的值就变成了你给我罗列的值。
追答是的,所以在使用指针变量后,要及时进行释放。