为了账号安全,请及时绑定邮箱和手机立即绑定

php的 变量赋值类型为对象的一些问题

php的 变量赋值类型为对象的一些问题

PHP
慕仙森 2019-03-14 07:39:25
图示所写 变量赋的值为对象类型默认是引用传值。也就是指向同一个内存空间 下面给出另一段代码和结果图 结果如下 问题:既然变量赋值类型为对象都是引用传值,为什么结果来看,$assigned更像是赋值传值,如果是引用传值,改变为null,三个变量不是都应该为null吗?!
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

答案已自行百度到 想了解的看这篇文章 https://www.zhihu.com/questio...

查看完整回答
反对 回复 2019-03-18
?
浮云间

TA贡献1829条经验 获得超4个赞

不知道你知不知道深复制和浅复制,值的复制,是深复制,就是说改变了就改变了,不会影响另外一个:例如
$a=1;
$b=$a;
$a=2
echo $a;//2
echo $b;//1

对象的复制是浅复制,他的更改会影响到另外一个,这个楼主你应该懂,所以,当assigned=$instance,后,对instance的修改,会影响assigned ,如果没有最后的null,$instance和assigned是一样的。关键就是最后的null,null其实也是一个对象,说到这里,我相信你应该明白了,$instance=null,这个时候,instance被指向了另外一个对象(跟assigned没半毛钱关系了),而reference又是指向instance,跟着也指向了null对象,所以你明白了么?

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 675 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信