<?php
/**
数据库单例实现方式,主要通过静态对象防止new对象实例
*/
class MySQLDB {
private static $instance;//保存对象
private function __construct($config) {//放置类外执行new
}
public static function getInstance($config) {//接口方法,返回该类实例,通过业务逻辑判断,使用用户得到的永远是一个对象!
//判断当前对象是否已经存在
if(!(self::$instance instanceof self)) {
//不是实例,实例化,并保存到属性上
self::$instance = new self($config);
}
return self::$instance;
}
private function __clone() //防止通过克隆的方式得到对象!
{
}
}
//使mysqldb类,能且仅能实例化一个对象!
$db1 = MySQLDB::getInstance(array());//实例化一个对象
var_dump($db1);
$db2 = MySQLDB::getInstance();//返回刚刚实例化好已经存在的对象。
var_dump($db2);
$db3 = MySQLDB::getInstance();//返回刚刚实例化好已经存在的对象。
var_dump($db3);
/**
数据库单例实现方式,主要通过静态对象防止new对象实例
*/
class MySQLDB {
private static $instance;//保存对象
private function __construct($config) {//放置类外执行new
}
public static function getInstance($config) {//接口方法,返回该类实例,通过业务逻辑判断,使用用户得到的永远是一个对象!
//判断当前对象是否已经存在
if(!(self::$instance instanceof self)) {
//不是实例,实例化,并保存到属性上
self::$instance = new self($config);
}
return self::$instance;
}
private function __clone() //防止通过克隆的方式得到对象!
{
}
}
//使mysqldb类,能且仅能实例化一个对象!
$db1 = MySQLDB::getInstance(array());//实例化一个对象
var_dump($db1);
$db2 = MySQLDB::getInstance();//返回刚刚实例化好已经存在的对象。
var_dump($db2);
$db3 = MySQLDB::getInstance();//返回刚刚实例化好已经存在的对象。
var_dump($db3);