訪問控制 – PHP面向?qū)ο缶幊蹋∣OP)

    PHP 對屬性或方法的訪問控制,是通過在前面添加關(guān)鍵字 public(公有),protected(受保護)或 private(私有)來實現(xiàn)的。

    • public(公有):公有的類成員可以在任何地方被訪問。
    • protected(受保護):受保護的類成員則可以被其自身以及其子類和父類訪問
    • private(私有):私有的類成員則只能被其定義所在的訪問。

    在子類中,可以對 public(公有)和protected(受保護)進行重定義,但private(私有)而不能

    屬性的訪問控制

    類屬性必須定義為公有,受保護,私有之一。

    如果用 var 定義,則被視為公有。

    <?php
    /**
     * Define MyClass
     */
    class MyClass
    {
        public $public = 'Public';
        protected $protected = 'Protected';
        private $private = 'Private';
    
        function printHello()
        {
            echo $this->public;
            echo $this->protected;
            echo $this->private;
        }
    }
    
    $obj = new MyClass();
    echo $obj->public; // 這行能被正常執(zhí)行
    echo $obj->protected; // 這行會產(chǎn)生一個致命錯誤
    echo $obj->private; // 這行也會產(chǎn)生一個致命錯誤
    $obj->printHello(); // 輸出 Public、Protected 和 Private
    
    
    /**
     * Define MyClass2
     */
    class MyClass2 extends MyClass
    {
        // 可以對 public 和 protected 進行重定義,但 private 而不能
        protected $protected = 'Protected2';
    
        function printHello()
        {
            echo $this->public;
            echo $this->protected;
            echo $this->private;
        }
    }
    
    $obj2 = new MyClass2();
    echo $obj2->public; // 這行能被正常執(zhí)行
    echo $obj2->private; // 未定義 private,私有的類成員則只能被其定義所在的類訪問
    echo $obj2->protected; // 這行會產(chǎn)生一個致命錯誤
    $obj2->printHello(); // 輸出 Public、Protected2 和 Undefined
    
    ?>

    注意,什么是類,什么是對象(類的實例)

    方法的訪問控制

    類中的方法可以被定義為公有,私有或受保護。

    如果沒有設(shè)置這些關(guān)鍵字,則該方法默認為公有。

    <?php
    /**
     * Define MyClass
     */
    class MyClass
    {
        // 聲明一個公有的構(gòu)造函數(shù)
        public function __construct() { }
    
        // 聲明一個公有的方法
        public function MyPublic() { }
    
        // 聲明一個受保護的方法
        protected function MyProtected() { }
    
        // 聲明一個私有的方法
        private function MyPrivate() { }
    
        // 此方法為公有
        function Foo()
        {
            $this->MyPublic();
            $this->MyProtected();
            $this->MyPrivate();
        }
    }
    
    $myclass = new MyClass;
    $myclass->MyPublic(); // 這行能被正常執(zhí)行
    $myclass->MyProtected(); // 這行會產(chǎn)生一個致命錯誤
    $myclass->MyPrivate(); // 這行會產(chǎn)生一個致命錯誤
    $myclass->Foo(); // 公有,受保護,私有都可以執(zhí)行
    
    
    /**
     * Define MyClass2
     */
    class MyClass2 extends MyClass
    {
        // 此方法為公有
        function Foo2()
        {
            $this->MyPublic();
            $this->MyProtected();
            $this->MyPrivate(); // 這行會產(chǎn)生一個致命錯誤
        }
    }
    
    $myclass2 = new MyClass2;
    $myclass2->MyPublic(); // 這行能被正常執(zhí)行
    $myclass2->Foo2(); // 公有的和受保護的都可執(zhí)行,但私有的不行
    
    class Bar 
    {
        public function test() {
            $this->testPrivate();
            $this->testPublic();
        }
    
        public function testPublic() {
            echo "Bar::testPublicn";
        }
        
        private function testPrivate() {
            echo "Bar::testPrivaten";
        }
    }
    
    class Foo extends Bar 
    {
        public function testPublic() {
            echo "Foo::testPublicn";
        }
        
        private function testPrivate() {
            echo "Foo::testPrivaten";
        }
    }
    
    $myFoo = new foo();
    $myFoo->test(); // Bar::testPrivate 
                    // Foo::testPublic
    ?>

    參考文章

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學習交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
    無意侵害您的權(quán)益,請發(fā)送郵件至 1355471563#qq.com 或點擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優(yōu)惠劵
    搜索
    主站蜘蛛池模板: 欧美激情一区二区三区成人| 亚洲视频在线一区二区三区| 国产AV午夜精品一区二区入口| 亚洲熟女综合色一区二区三区| 精品国产亚洲一区二区在线观看| 国产福利电影一区二区三区,日韩伦理电影在线福 | 无码国产精品一区二区免费3p| 中文字幕一区日韩在线视频| 日韩人妻无码一区二区三区综合部| 亚洲一区日韩高清中文字幕亚洲 | 蜜臀AV在线播放一区二区三区| 无码少妇一区二区三区| 亚洲AV综合色一区二区三区| 亚洲一区二区三区电影| 亚洲一区精品视频在线| 蜜芽亚洲av无码一区二区三区| 精品无码综合一区二区三区 | 国产一区二区三区不卡在线观看 | 日韩精品人妻av一区二区三区| 日韩精品无码Av一区二区| 精品国产AⅤ一区二区三区4区| 国产波霸爆乳一区二区| 亚洲日本一区二区| 亚洲av无码成人影院一区| 日韩精品免费一区二区三区| 日本一区二区在线免费观看| 国产一区三区三区| 久久久久人妻一区二区三区vr | 亚洲熟妇AV一区二区三区宅男| 在线视频一区二区三区四区| 日韩熟女精品一区二区三区| 日产一区日产2区| 日韩精品一区二区三区中文精品| 好爽毛片一区二区三区四无码三飞 | 精品无码av一区二区三区| 丝袜美腿一区二区三区| 一区二区三区四区视频在线| 无码av免费一区二区三区| 日韩av片无码一区二区不卡电影| 亚洲高清成人一区二区三区| 一区二区三区国产精品|