zoukankan      html  css  js  c++  java
  • php访问控制

    访问控制

    访问控制通过关键字public,protected和private来实现。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。

    类属性必须定义为公有受保护私有之一。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。

    class Car {

        $speed = 10; //错误 属性必须定义访问控制

        var $speed = 10; //相当于public 

        public $name;   //定义共有属性

    }

    类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。

    class Car {

        //默认为共有方法

        function turnLeft() {

        }

    }

    如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。

    class Car {

        private function __construct() {

            echo 'object create';

        }

        private static $_object = null;

        public static function getInstance() {

            if (empty(self::$_object)) {

                self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象

            }

            return self::$_object;

        }

    }

    //$car = new Car(); //这里不允许直接实例化对象

    $car = Car::getInstance(); //通过静态方法来获得一个实例

  • 相关阅读:
    (Good Bye 2019) Codeforces 1270B Interesting Subarray
    (Good Bye 2019) Codeforces 1270A Card Game
    Codeforces 1283D Christmas Trees(BFS)
    Codeforces 1283C Friends and Gifts
    Codeforces 1283B Candies Division
    1095 Cars on Campus (30)
    1080 Graduate Admission (30)
    1099 Build A Binary Search Tree (30)
    1018 Public Bike Management (30)
    1087 All Roads Lead to Rome (30)
  • 原文地址:https://www.cnblogs.com/-simon/p/5887456.html
Copyright © 2011-2022 走看看