数组通过foreach引用的问题
1、代码如下:
$arr = range(1, 5);
foreach ($arr as &$value) {
$value *= 2;
}
foreach ($arr as &$value) {
$value *= 2;
}
var_dump($arr);
2、运行结果如下:
3、若在后面代码中改变$value的值时 $arr的最后一个元素的值会随着$value的值改变而改变,应该怎么解决这个问题?
解决代码如下:
$arr = range(1, 5);
foreach ($arr as &$value) {
$value *= 2;
}
unset($value); //增加这个unset($value),隔断$value与该内存的连接关系,也就是隔断$value与
foreach ($arr as &$value) {
$value *= 2;
}
unset($value); //增加这个unset($value),隔断$value与该内存的连接关系,也就是隔断$value与
// $arr[4]引用的关系。
var_dump($arr);
var_dump($arr);
4、运行结果如下: