对象的回收机制深度剖析

分析:这是为什么呢?为什么析构函数只调用了一次呢。析构函数是在对象被销毁时调用的,可以用print_r()分别打印$a到$d,发现都可以将对象完全打印出来的。要知道这是为什么,那就要知道对象在内存中是怎么存在的了。

解释:1)从代码来看,类只被实例化一次。从之前的面向对象可以得知,对象是通过new className()创建的。

                 2)对象是通过引用传递的,即地址传递的(内存会给每个创建的对象分配一个地址)

                 3)从源代码的角度看。PHP在对象赋值的时候,是通过使用计数器+符号表连接来处理的,$a $b $c $d是符号表不同的变量名,他们都同时指向了同一个结构体

总结:基于以上分析:即上例中只创建了一个对象。而其他变量只是指向了那个对象,用通俗的的话来解释的话,可以这么理解:你的名字叫周星驰,别人称呼你为星爷或周       导,其实都是在说同一个人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值