单例模式

<?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);
原文地址:https://www.cnblogs.com/lixiuyuan999/p/6399757.html