一:单例模式的三大原则
(1)构造函数需要标记为非public(防止外部使用new操作符创建对象),
单例类不能在其他类中实例化,只能被自身实例化。
(2)拥有一个保存类的实例的静态成员变量
$_instance
(3
)拥有一个访问这个实例的公共静态的方法
二:实现代码
<?
phpclass Db {
static private $_instance;
static private $_connectSource;
#连接数据库常量
private $_dbConfig =
array(
'host' => '127.0.0.1',
'user' => 'root',
'password' => '',
'database' => 'video',
);
private function __construct() {
}
static public function getInstance() {
#判断这个变量是否存在
if(!(self::
$_instance instanceof self)) {
self::
$_instance =
new self();
}
return self::
$_instance;
}
#连接数据库
public function connect() {
if(!self::
$_connectSource) {
self::
$_connectSource = @
mysql_connect(
$this->_dbConfig['host'],
$this->_dbConfig['user'],
$this->_dbConfig['password'
]);
if(!self::
$_connectSource) {
throw new Exception('mysql connect error ' .
mysql_error());
//die('mysql connect error' . mysql_error());
}
mysql_select_db(
$this->_dbConfig['database'], self::
$_connectSource);
mysql_query("set names UTF8", self::
$_connectSource);
}
return self::
$_connectSource;
}
}
/*$connect = Db::getInstance()->connect();
$sql = "select * from video";
$result = mysql_query($sql, $connect);
echo mysql_num_rows($result);
var_dump($result);*/
转载于:https://www.cnblogs.com/hgj123/p/4360263.html
相关资源:php单例模式实例