admin 发表于 2024-5-25 17:50:35

php中foreach循环使用&引用来修改数组元素

具体看代码演示:<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value*2;
}
print_r($arr);
echo "<br>";
// $arr is now array(2, 4, 6, 8)
//unset($value); // 最后取消掉引用
foreach ($arr as $key => $value) {
echo $key ."=>". $value."<br>";
print_r($arr);
echo "<br>";
}
//当没有使用unset($value)方法销毁变量,那么$arr是一直在保留引用;
//第一次循环,将2赋值给了$value,浏览器输出2,然后再打印数组$arr实际成了array(2,4,6,2);
//第二次结束,将4赋值给了$value,浏览器输出4,然后再打印数组$arr实际成了array(2,4,6,4);
//第三次结束,将6赋值给了$value,浏览器输出6,然后再打印数组$arr实际成了array(2,4,6,6);
//第四次结束,将6赋值给了$value,浏览器输出6,然后再打印数组$arr实际成了array(2,4,6,6);
?>
运行结果如下:
Array ( => 2 => 4 => 6 => 8 )
0=>2
Array ( => 2 => 4 => 6 => 2 )
1=>4
Array ( => 2 => 4 => 6 => 4 )
2=>6
Array ( => 2 => 4 => 6 => 6 )
3=>6
Array ( => 2 => 4 => 6 => 6 )引用的作用是修改数组的元素,上面的代码第二个foreach实际上是在间接的给$arr赋值。

页: [1]
查看完整版本: php中foreach循环使用&引用来修改数组元素