php 引用的问题
本文介绍了php 引用的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
$a = [1,2,3];
foreach($a as &$item){
echo $item . ',';
}
//unset($item); // 引用赋值后不销毁对象
foreach($a as $item){
echo $item . ',';
}
上面的代码的输出如下:
1,2,3,1,2,2
(网上的答案: 看最后一个输出的是2,而不是3,就是因为代码里没有销毁$item造成的,原因如下:第一个循环,把3的引用赋给了$item,第二个循环,把1赋给了$item,因为$item是引用,导致数组的元素3变成了1,明白了吗?)
看的不太明白,求大神 详细解答,谢谢!!!
解决方案
$arr=[1,2,3];
foreach ($arr as &$val) {
echo $val;
}
// 1,2,3
#unset($val);
foreach ($arr as $val) {
echo $val;
}
//1,2,3
第一次循环后 $val = $arr[2] ;
第二次循环:
$arr[2] = $val = $arr[0]; //1
$arr[2] = $val = $arr[1]; //2
$arr[2] = $val = $arr[2]; //2 $arr[2]赋值成2了
这篇关于php 引用的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文