foreach遍历中的引用
$arr = array(1,2,3);
foreach($arr as &$v){}
foreach($arr as $v){
echo $v;
}
foreach遍历中的引用分析
第一次foreach循环
foreach($a as &$v) {$v *= $v;}
这里由于是引用绑定,所以相当于对数组中的元素执行:
$v = &$a[0];
$v = &$a[1];
$v = &$a[2];
留下一个引用变量没有unset将数组最后一个变量变成引用。
第二次foreach循环
foreach($a as $v){
echo $v;
}
类似与执行:
$v = $a[0];
$v = $a[1];
$v = $a[2];
如何杜绝foreach的引用隐患?
方法一
foreach($a as $k=>&$v){
…
unset($v);
}
方法二
foreach($a as $k=>&$v){
…
}
unset($v)
foreach引用的好处
节省时间、空间
Last updated
Was this helpful?