class Singleton { //私有静态属性:用来保存已经产生的对象 private static $obj; //私有化构造方法 private function __construct(){} //公有静态方法 public static function getInstance() { //控制只产生一个对象 if(!(self::$obj instanceof self)){ //产生对象 self::$obj = new self; } //返回 return self::$obj; } //私有化克隆方法 private function __clone(){} } //实例化:不能产生多个实例 //$s1 = new Singleton; //new对象:会自动的调用构造方法 //$s2 = new Singleton; //通过公有静态方法 $s1 = Singleton::getInstance(); //$s2 = Singleton::getInstance(); //$s3 = clone $s1; //var_dump($s1,$s3); 总结:单例模式:三私一公(三私:私有化构造方法,私有化克隆方法,私有化静态属性;一公:公有化静态方法)