问答详情
源自:2-7 PHP类和对象之访问控制

求解释下列代码

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(); //通过静态方法来获得一个实例

其中 echo“object create”这个有什么作用???还有就是empty(self::$_object)是什么意思????

提问者:慕粉8387356 2018-09-27 22:00

个回答

  • rafa_gao
    2018-09-27 23:08:35
    已采纳

    “object create”  就是告诉你,下面开始创建对象了(就是说的玩玩)

    private static $_object = null

    $_object是一个静态属性,给了一个内存,里面是空,不用实例化

    public static function getInstance()

    创建了一个静态方法,同样不需要实例化可以直接调用

    $car = Car::getInstance();

    给了这个函数创建类的权利

    楼主是在学单例模式吗

    如果是的话,可以看看这个视频

    http://www.php.cn/code/23290.html