PHP单例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21441663/article/details/80964325

保证一个类仅有一个实例,并且提供一个访问它的全局访问点 单例模式有三个特点:

  1. 一个类只有一个实例
  2. 它必须自行创建这个实例
  3. 必须自行向整个系统提供这个实例
/**
 * 简易单列类.
 *
 * Class singleton
 */
class Singleton {

    /**
     * 定义一个储存实例的变量.
     *
     * @var null
     */
    static private $instance = null;

    /**
     * 构造方法定义成私有防止外部直接new.
     *
     * singleton constructor.
     */
    private  function __construct()
    {

    }

    /**
     * 暴露接口外部直接调用.
     *
     * @author: hh
     * @return null|singleton
     */
    public static function getInstance()
    {
        if (self::$instance === null) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    /**
     * php魔术方法 防止克隆.
     * 
     * @author: hh
     */
    public function __clone(){
        die('禁止克隆');
    }


    public function test()
    {
        echo 'This is singleton class.';
    }
}

// 调用
$singleton = Singleton::getInstance();

$singleton->test();

猜你喜欢

转载自blog.csdn.net/qq_21441663/article/details/80964325