<?php
class Demo{
//1.静态私有属性,保存当前类的实例
private static $instance = null;
//2.构造方法私有化,禁止外部用new 来创建类实例
private function __construct()
{
}
//3.克隆方法私有化,禁止从外部克隆来生成本类的实例
private function __clone()
{
}
//4.生成当前类的唯一实例
public static function getInstant()
{
//如果不是当前的实例,那么实例化当前类创建新实例
if(!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
}
$obj1 = Demo::getInstant();
$obj2 = Demo::getInstant();
$obj3 = Demo::getInstant();
var_dump($obj1,$obj2,$obj3);
输出结果:object(Demo)#1 (0) { } object(Demo)#1 (0) { } object(Demo)#1 (0) { }