php物件導向private、protected、public三者區別詳解

來源:互聯網
上載者:User
本文主要和大家分享php物件導向private、protected、public三者區別詳解,希望能協助到大家。

        private     protected       public本類內     Y           Y              Y子類內     N           Y              Y外部       N           N              Y

注意:
在java中,如果屬性/方法前面不寫任何參數
即public/protected/private都不寫,也是可以的,friendly

在PHP中,如果public/protected/private 都不寫,
則理解為 public 建議養成好習慣,不要不寫

class Human {    private $name = 'zhangsan';    protected $money = 3000;    public $age = 28;    public function say() {        echo '我叫',$this->name,'<br />';        echo '我有',$this->money,'元錢<br />';        echo '我今年',$this->age,'歲';    }}class Stu extends Human {    private $friend = '小花';    public function talk() {        echo '我叫',$this->name,'<br />';        echo '我有',$this->money,'元錢<br />';        echo '我今年',$this->age,'歲<br />';            }}$ming = new Stu();echo $ming->age,'<br />'; // 28echo $ming->friend; //出錯:因為類外不能調用privateecho $ming->money; //出錯:因為類外不能調用protected屬性$ming->talk();/**出錯:Notice: Undefined property: Stu::$name in 。。。我有3000元錢我今年28歲分析原因: Undefined property: Stu::$name 這是說明:stu對象 沒有name屬性但昨天說,私人的不是可以繼承嗎?是可以繼承過來,但系統有標記,標記其為父類層面的私人屬性.因此無權調用,導致此錯發生.可以分析出:protected 可以在 子類內訪問protected能在子類訪問,本類內能否訪問?答:當然可以
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.