第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 中 B 子類繼承 A 父類,A 父類何時會被銷毀?

PHP 中 B 子類繼承 A 父類,A 父類何時會被銷毀?

PHP
慕村225694 2019-03-13 10:22:19
問題說明 這里有一個 A 父類 class A { public function __construct() { } public function __destruct() { echo "Destroy"; } } 子類 B,并且讓 B 繼承 A use A; class B extend A { public function __construct() { } public function index() { echo "Method: index"; } } $a = new A; $a->index(); 能說一下PHP執(zhí)行的流程嗎,父類 A 的析構(gòu)函數(shù)何時會被執(zhí)行?
查看完整描述

4 回答

?
慕森王

TA貢獻1777條經(jīng)驗 獲得超3個贊

由于A 是先被實例化的,所以 A 是最后被從棧內(nèi)彈出,所有 A 的析構(gòu)函數(shù)會最后執(zhí)行

查看完整回答
反對 回復(fù) 2019-03-18
?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

析構(gòu)函數(shù)順序與入棧順序相反, "先進后出","后進先出" 后實例化,先從棧中彈出,執(zhí)行析構(gòu)函數(shù)

$a = new A;

$a->index();
與 B 類沒啥關(guān)系吧?

這個問題與這個完全一致,可以參考這個答案PHP繼承類時的執(zhí)行順序

查看完整回答
反對 回復(fù) 2019-03-18
?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

子類B如果自己沒有定義析構(gòu)函數(shù)則會繼承父類A的析構(gòu)函數(shù),析構(gòu)函數(shù)會在當PHP決定你的腳本不再與對象相關(guān)時,PHP析構(gòu)函數(shù)將被調(diào)用. 在一個函數(shù)的命名空間內(nèi),這會發(fā)生在函數(shù)return的時候. 對于全局變量,這發(fā)生于腳本結(jié)束的時候. 如果你想明確地銷毀一個對象,你可以給指向該對象的變量分配任何其它值. 通常將變量賦值為NULL或者調(diào)用unset,或者在使用exit的時候,都會執(zhí)行A類的析構(gòu)函數(shù)。

查看完整回答
反對 回復(fù) 2019-03-18
?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

我覺得你可能沒有理解繼承這個概念。繼承本質(zhì)上還是新定義了一個類,只是擁有了父類非私有的方法和屬性的定義。并不是說,一個類繼承了另外一個類,它們就有先后順序,這是不對的。在什么樣的情況下會有父類和子類之分呢?就是在 staticself 的調(diào)用上會有區(qū)別。

你的這個例子,實際上是實例化了 B,實際上和 A 沒有什么關(guān)系。你可以理解為 B 中擁有了 A 中定義的方法。如果子類中沒有重新實現(xiàn)這個方法,那么子類就會認為父類中的析構(gòu)方法是自己定義的。對于其它方法或者屬性的繼承,也是一樣的。

查看完整回答
反對 回復(fù) 2019-03-18
  • 4 回答
  • 0 關(guān)注
  • 512 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號