[php]对象的销毁时机

对象在哪些情况下会被销毁?

1.如果程序结束,所有变量都会被销毁,自然,变量所代表的对象也会被销毁。

示例:

这里写图片描述

反向销毁:对象被销毁的顺序,跟创建时的顺序相反。(后创建,先销毁)

2.若一个对象没有任何变量指向它,那么即使程序还没有结束,这个对象也会被销毁。

示例:

这里写图片描述

示例中的运行原理如下:

这里写图片描述
//没有被变量指向,所以立即被销毁了。

情形讨论:
1.进行值传递后断开原变量连接,对象会被销毁吗?

$o2 = $o2a;       //值传递
unset($o2);        //被o2指向的对象销毁了吗?

这里写图片描述

图示:

这里写图片描述

2.进行引用传递后断开原变量连接,对象会被销毁吗?

$o3 = &$o3a;       //引用传递
unset($o2);        //被o3指向的对象销毁了吗?

这里写图片描述

图示:

这里写图片描述

3.引用传递后,变量改变了指向的内容为普通数据,对象会被销毁吗?

$o4 = &$o4a;       //引用传递
$o4 = 44;              //改变了指向的内容为普通数据

这里写图片描述

图示:

这里写图片描述
//原来的$o4指向的数据时new的时候自动调配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值