析構函數是否被調用了兩次呢?
那請問老師:析構函數是否被調用了兩次呢?
$james=null;這個調用了一次析構函數
打?。?From now on James will not be used.
然后程序結束以后又調用一次析構函數。
打?。?Destroying James
Destroying Jordan
看這個打印的順序,好像是“后進先出“的順序。
James在后,先清空。
Jordan在先,后清空。
然而這一句:From now on James will not be used.插在二個destroy之間。
是一起把james清空完了,接著清jordan。
=。=個人猜測,請老師解答我的疑問。
2015-12-18
一個對象被析構之后就不存在了,所以不可能再調用一次它的析構函數。
$james=null;之后,之前被james這個變量引用的那個對象沒人在使用了,所以就被釋放,也就是調用一次析構。jordon的對象還被jordon這個變量引用,所以它在最后程序退出時才被釋放,所以在From now on James will not be used.這條語句之后調用析構函數,沒有所謂的“后進先出”。