foreach之引用&的使用
废话不说,上代码
$arrayName = array(
"0" => array(
"1" =>"houzi" ,
"2" =>"xiaogou"
) ,
"1" => array(
"2" =>"houzi" ,
"3" =>"xiaogou" )
);
var_dump($arrayName);
foreach ($arrayName as $key => &$value) {
$value[2]="xiugua";
}
var_dump($arrayName);exit;
结果:
array (size=2)
0 =>
array (size=2)
1 => "houzi" (length=5)
2 => "xiaogou" (length=7)
1 =>
array (size=2)
2 => "houzi" (length=5)
3 => "xiaogou" (length=7)
array (size=2)
0 =>
array (size=2)
1 => "houzi" (length=5)
2 => "xiugua" (length=6)
1 => &
array (size=2)
2 => "xiugua" (length=6)
3 => "xiaogou" (length=7)
手册说明
可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>$value 的引用仅在被遍历的数组可以被引用时才可用(例如是个变量)。以下代码则无法运行:
<?php
foreach (array(1, 2, 3, 4) as &$value) {
$value = $value * 2;
}
?>Warning数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
