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