求問為什么打印出來兩個(gè)析構(gòu)函數(shù)的結(jié)果?
<?php class?Car?{ ????function?__construct(){ ????????????print?"1"; ????} ????function?__destruct(){ ????print?"2"; }? } class?Ppp?extends?Car{ ????function?__construct()?{ ????print?"3"; ????parent::__construct(); } } $car?=?new?Car();//1???2 $ppp?=?new?ppp(); echo?"使用后,準(zhǔn)備銷毀car對(duì)象";
運(yùn)行的結(jié)果是:131使用后,準(zhǔn)備銷毀car對(duì)象22
請(qǐng)問為什么是22 ?腳本里面只有一個(gè)析構(gòu)函數(shù),結(jié)果不應(yīng)該只打印一個(gè)2么??
求問 謝謝!
2018-06-11
子類ppp繼承了父類Car的析構(gòu)函數(shù)
2018-12-20
$car
?=?
new
?Car();//
父類->$car$ppp
?=?
new
?ppp();//
子類->$ppp你創(chuàng)建了兩個(gè)對(duì)象,所以需要銷毀兩個(gè),父類執(zhí)行一次析構(gòu)函數(shù),子類根據(jù)繼承性也執(zhí)行了一次析構(gòu)函數(shù)。 所以22.
2018-08-07
說白了就是parent::__construct();這句話 ?導(dǎo)致同時(shí)只是子類和父類,執(zhí)行完的結(jié)果是1 3 1 ,執(zhí)行完后
? 先銷毀父類 執(zhí)行一個(gè)2 ,在銷毀ppp 再執(zhí)行父類的銷毀析構(gòu)函數(shù)2 ? ? ??
反正我是這么理解的 好像沒毛病,
2018-07-27
說白話一點(diǎn)就是析構(gòu)函數(shù)是在類和子類中構(gòu)造函數(shù)執(zhí)行完畢后才被調(diào)用,在子函數(shù)中調(diào)用了父類而父類析構(gòu)函數(shù)繼承執(zhí)行一次
2018-06-09
我明白了,是因?yàn)樽宇惡瘮?shù)繼承了父類函數(shù)的方法。所以當(dāng)腳本全部執(zhí)行完之后,進(jìn)行析構(gòu)函數(shù)時(shí),父類執(zhí)行完自己的析構(gòu)函數(shù)后,子類要同樣要執(zhí)行一遍。所以會(huì)出現(xiàn)兩個(gè)2,對(duì)么?