<?php $num=0; $arr=array(); $arr[0]=$num; $num=1; echo $arr[0];//怎么不是1 ?>
<?php /** * User: Kitetop * Date: 2018/5/8 * Time: 15:53 */ $num=0; $arr=array(); $arr[0]=&$num; $num=1; echo $arr[0];//输出为1 ?> 其实说到底这个还是在赋值的时候传递的是值还是地址的问题,你直接使用值传递,$arr[0]与$num是两个独 立的存储地址,只修改其中一个存储地址对另外一个当然没有关系,而如果你使用&$num的时候,$arr[0]还是指向 $num里面的变量的,你对$num修改$arr[0]的值也会跟着变化,相反也是一样的。
你这个是值传递和引用传递的问题,只有引用传递才会改变变量的值,数组下标0的值才会改变
要重新赋值
<?php
$num
=0;
$arr
=
array
();
$arr
[0]=&
$num
;
$num
=1;
echo
$arr
[0];
//这就是1了
?>