课程
/后端开发
/PHP
/PHP进阶篇
<?php $num=0; $arr=array(); $arr[0]=$num; $num=1; echo $arr[0];//怎么不是1 ?>
2018-05-04
源自:PHP进阶篇 1-10
正在回答
<?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了?>
<?php
$num
=0;
$arr
=
array
();
[0]=&
;
=1;
echo
[0];
//这就是1了
?>
举报
轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序
2 回答用unset()可以释放变量
3 回答静态方法只能使用静态变量吗?
3 回答PHP中数组是不是对象?
1 回答子类Truck中$this->speed是指向父类Car中的变量吗
3 回答类创建中的变量定义