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

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

怎么理解PHP里的self呢?

怎么理解PHP里的self呢?

呼如林 2018-07-10 09:09:57
 class A {        const STR = "A";        public function x() {            echo self::STR;         }     }    class B extends A{        const STR = "B";     }     (new B)->x();最后輸出結(jié)果是A,該怎么理解這個呢?猜想一:self在編譯時會綁定為當(dāng)前類,可理解成編譯時所有的self替換為所處類名,這樣別的類繼承父類方法后,方法代碼里并不是self::xxx,而是父類名::xxx所以例子里的str就是父類里的str猜想二:子類繼承父類方法,其實并不是把父類方法拿過來,而是有了父類方法的訪問權(quán)限,當(dāng)調(diào)用子類里沒有的方法時,會去父類里找,找到后在父類里執(zhí)行,自然就self指向父類這兩種到底哪種對呢?如果都不對的話應(yīng)該怎么理解self呢?先謝謝大家指點了
查看完整描述

3 回答

?
小怪獸愛吃肉

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

使用 self:: 或者?CLASS?對當(dāng)前類的靜態(tài)引用,取決于定義當(dāng)前方法所在的類

你的猜想二是對的.


查看完整回答
反對 回復(fù) 2018-07-20
?
慕少森

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

實際上他們的原理是:
self 是針對當(dāng)前本類的使用
this 是對當(dāng)前類的調(diào)用,如果當(dāng)前類沒有,則找尋到父類去

查看完整回答
反對 回復(fù) 2018-07-20
?
動漫人物

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

<?phpclass A {    const STR = "A";    public function x() {        echo self::STR;
    }
}class B extends A{    const STR = "B";  
    public function x() {        echo self::STR;
    }  
}

(new B)->x();

復(fù)寫一下就好理解


查看完整回答
反對 回復(fù) 2018-07-20
  • 3 回答
  • 0 關(guān)注
  • 1373 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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