<?php
class Single
{
# 创建一个 私有的 静态对象 为什么一定要创建一个静态的属性,因为 私有化构造方法,再去使用$this就会报错,因为不可在创建实例化对象了。
private static $obj = null;
# 私有化 构造方法,不允许创建实例化对象
private function __construct(){}
# 创建一个静态方法,因为不能再实例对象
public static function getInface()
{
# 判断这是否是一个空对象,如果是一个空对象,则将对象传递过去,
if(is_null(self::$obj)){
self::$obj = new Single();
}
return self::$obj;
}
# 私有化 克隆方法,不允许克隆这个类
private function __clone(){}
public function index()
{
echo 222;
}
}
$obj = Single::getInface();
$new_obj = Single::getInface();
// 私有化构造方法,则不能实例化对象
// $new_obj = new Single();
// var_dump($new_obj);
/*
私有化构造方法,不允许克隆此类
$new_obj = clone new Single();
var_dump($obj);
*/
echo $obj->index();
# 单例模式,类中只有一个对象
var_dump($obj === $new_obj);
php单例模式
最新推荐文章于 2022-04-14 11:03:03 发布