PHP单例模式

<?php

/**
 * PHP的单例模式:让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源。典型应用:数据库连接
 * PHP的单例模式实现要求:
 * 1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;
 * 2、拥有一个保存类的实例的静态成员变量;
 * 3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;
 */
class Demo
{
    private static $ins; //保存对象的静态属性

    private function __construct()
    {
        echo "私有化构造方法<br>";
    }

    //禁止克隆
    private function __clone()
    {
    }

    public static function getInstance()
    {
        if (!(self::$ins instanceof self)) {
            echo "实例化<br>";
            self::$ins = new self;
        }
        return self::$ins;
    }

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

//多次调用类的实例
Demo::getInstance()->test();
Demo::getInstance()->test();

//输出结果
/*
实例化
这是构造方法
测试方法
测试方法
*/

//通过结果,可以看到Demo类只实例化了一次。
原文地址:https://www.cnblogs.com/rxbook/p/10385099.html