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。