亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

怎么理解PHP里的self呢?

怎么理解PHP里的self呢?

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

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

<?php

class 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();

復寫一下就好理解

查看完整回答
反對 回復 2018-07-10
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

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

查看完整回答
反對 回復 2018-07-10
  • 2 回答
  • 0 關注
  • 566 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號