对象在哪些情况下会被销毁?
1.如果程序结束,所有变量都会被销毁,自然,变量所代表的对象也会被销毁。
示例:
反向销毁:对象被销毁的顺序,跟创建时的顺序相反。(后创建,先销毁)
2.若一个对象没有任何变量指向它,那么即使程序还没有结束,这个对象也会被销毁。
示例:
示例中的运行原理如下:
//没有被变量指向,所以立即被销毁了。
情形讨论:
1.进行值传递后断开原变量连接,对象会被销毁吗?
$o2 = $o2a; //值传递
unset($o2); //被o2指向的对象销毁了吗?
图示:
2.进行引用传递后断开原变量连接,对象会被销毁吗?
$o3 = &$o3a; //引用传递
unset($o2); //被o3指向的对象销毁了吗?
图示:
3.引用传递后,变量改变了指向的内容为普通数据,对象会被销毁吗?
$o4 = &$o4a; //引用传递
$o4 = 44; //改变了指向的内容为普通数据
图示:
//原来的$o4指向的数据时new的时候自动调配的。