<?php
//单例模式
//定义类
class Singleton{
//静态属性:保存对象
private static $obj;
//杜绝一切可以产生多个新对象的方式
private function __construct(){}
private function __clone(){}
//静态方法
public static function getInstance(){
//echo __FUNCTION__;
//先判断对象是否存在
//if(!is_object(self::$obj)){
if(!self::$obj instanceof self){
//创建对象
self::$obj = new Singleton();
//var_dump($obj);
}
//返回对象:return是返回值的意思,返回的是一个类的静态属性,静态属性中保存的是new的singleton的对象
return self::$obj;
}
}
//实例化
//$s = new Singleton(); //new之后得到对象一定会调用构造方法
//为变量$single赋值,右边是一个类:singleton调用自己的静态方法getInstance,将这个方法的返回值赋值给$single
$single = Singleton::getInstance();
var_dump($single);
$single1 = Singleton::getInstance();
var_dump($single1);