在php中对于一个对象,普通赋值和引用赋值有什么区别 20
例如:classCar(){public$name="aodi";}$car_a=newCar();$car_b=$car_a;$car_c=&$car_a;这样$car...
例如:
class Car (){
public $name = "aodi";
}
$car_a = new Car();
$car_b = $car_a;
$car_c = &$car_a;
这样$car_a,$car_b,$car_c都指向了刚刚实例化的对象啊,加不加&符号有什么区别吗? 展开
class Car (){
public $name = "aodi";
}
$car_a = new Car();
$car_b = $car_a;
$car_c = &$car_a;
这样$car_a,$car_b,$car_c都指向了刚刚实例化的对象啊,加不加&符号有什么区别吗? 展开
3个回答
展开全部
对象传智实际传的是对象标识符。当使用值传递的时候,作传值用的p1的标识符会被传递给被传值对象p2。此时,若修改p1的标识符(重建该对象即可),p2的标识符是不会改变的(p1 p2只是标识符相同的两个独立的对象)。但若为引用传值,p2的标识符是会随着p1的标识符一起改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
//普通赋值(常用)
$a = 1;//定义并且赋值a等于1
$b = $a;//把a里面的值1“复制”给b
$a = 3;//给a重新赋值等于3,程序结束,b没有发生变化依然等于1。
echo $a.$b;//输出31
//地址引用赋值
$a = 1;//定义并且赋值a等于1
$b = &$a;//b的值存a的地址,指向a,注意:是地址。
//相当于指针指向了a(但是有区别)。
//实际上是告诉电脑,b的值存在a那里,a参数的存储地址相对b共享
$a = 3;//给a重新赋值。
echo $a.$b;//输出33,a实际赋值结果,b地址指向的那个存储地址里面的存值
形象的举例说明:A盒子里有一份文件,名称:c
普通赋值:拿A盒子的文件去复印一份,然后放在B盒子里。此时,两个盒子里都各自有内容相同的一份文件。
后面不管你往A里仍什么进去,B还是只有最初的那份文件。
引用赋值:B盒子里面只是放着一张纸条,写着文件放在A盒子里,请去A盒子里拿。
后面,不管你给A盒子放什么,需要B盒子里的文件的人,都去A盒子里拿,拿到什么就要看,A里面放着什么了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询