单例模式作用:
解决项目中对某个类只能实例化一次
特点:
1:必须声明一个私有****静态变量
2:必须将构造函数,析构函数私有化,防止外部进行new实例化,这个类必须自己创建这个实例
3:getInstance()必须设置成公有的,静态的,以便利外部访问,必须调用此方法 以返回实例的一个引用
4:私有化__clone()方法防止克隆对象
应用场景
数据连接,文件缓存,分布式存储
代码:
class DB
{
private $_db;
private static $_instance;
private function __construct()
{
$this->_db = mysql_connect();//连接数据库
}
//覆盖__clone()方法,禁止克隆
private function __clone() {
}
public static function getInstance()
{
if(!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
//具体业务逻辑操作
public function addUserInfo()
{
}
}
$db = DB::getInstance();
var_dump($db);