单例模式思想其实很简单
-
首先 有一个实例的静态变量
-
构造方法和克隆方法设置为私有,防止外部直接new
-
提供一个获取实例的静态方法
代码如下:
class Redis { private static $_instance = null; //静态实例 private function __construct(){ //私有的构造方法 self::$_instance = new Redis(); $config = C("REDIS"); // redis配置信息;我这里是tp的 self::$_instance->connect($config['host'],$config['port']); if(isset($config['password'])){ self::$_instance->auth($config['password']); } } //获取静态实例 public static function getRedis(){ if(!self::$_instance){ new self; } return self::$_instance; } /* * 禁止clone */ private function __clone(){}
外部调用
Redis::getRedis()