如何理解PHP的单例模式

单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源。

PHP的单例模式实现要求:

    1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;

    2、拥有一个保存类的实例的静态成员变量;

    3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;

<?php
class Demo{
    private static $MyObject ;        //保存对象的静态属性
    private function __construct(){   //私有化构造函数
        echo "这是构造方法<br>";
    }
    public static function getInstance(){
        if(!(self::$MyObject instanceof self)){
            echo "实例化<br>";
            self::$MyObject = new self;
        }
        return self::$MyObject;
    }

    //类的其它方法
    public function test(){
        echo "测试方法<br>";
    }
}

//第一次调用类的实例
$first = Demo::getInstance();
$first->test();
//第二次调用类的实例
$second = Demo::getInstance();
$second->test();

【运行结果】

image.png

通过结果,可以看到Demo类只实例化了一次。

原文地址:https://www.cnblogs.com/rxbook/p/9106450.html