.singleton.php 文件 (单例模式可被继承 代码实例)
<?php
namespace lib;
abstract class Singleton
{
//设置一个私有的静态属性作为中间变量
private static $instancePool = [];

//將構造及克隆私有化,防止通过克隆等方式进行调用
final private function __construct(){
$this->init();
}

final private function __clone(){}

protected function init() {}

final public static function getInstance() {
$class = get_called_class();
//如果,所设置的静态属性的值,还为null 的话,那么就需要实例化自己,否则直接返回
if (!isset(self::$instancePool[$class])) {
self::$instancePool[$class] = new static();
}
return self::$instancePool[$class];
}
}
posted on 2017-12-04 18:35  roadone  阅读(201)  评论(0编辑  收藏  举报