什么是对象标识符?
什么是对象标识符?
我不能理解对象的赋值这节课中讲的对象的传递赋值,传递赋值不是说两个变量是独立的,互不影响吗?为什么结果会一样?什么是对象的标识符?比如$a=new MyClass(); $b=$a; 那么$a和$b是两个不同的空间,因为是传递赋值。就算改变了类的属性,那么$b为什么会改变呢?
源自:面向对象
2-11 对象的赋值
27
收起
正在回答
1回答
您好,解释如下:
对象的赋值是标识符的赋值,不是对象本身,标识符和对象本身存在不同的内存区域。
$a=new Myclass();这里$a空间里其实存的是一个标识符,而这个对象内容,包括属性方法其实存到了另一块内存里,通过$a能够找到这块内存,修改或者读取它的内容。就像我们通过慕课网的地址找到了慕课网,$a这个空间里存的是慕课网地址。它对应着实际的那个办公大厦。当把$a赋值给另一个变量$b,$b跟$a是相互独立的,但是内容是一样,还是慕课网地址,通过它也能找慕课网办公大厦。
如果给$a赋值为1,那1不是慕课网的标识符,通过1就找不到了。
如果解决了您的疑问,请采纳,祝学习愉快~
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星