摘要:<?php
//单例模式--数据库连接
class Singleton
{
/**
* 1)静态变量,保存全局实例,跟类绑定,跟对象无关
* 2)私有属性,为了避免类外直接调用 类名:
<?php
//单例模式--数据库连接
class Singleton
{
/**
* 1)静态变量,保存全局实例,跟类绑定,跟对象无关
* 2)私有属性,为了避免类外直接调用 类名::$instance,防止为空
*/
private static $instance;
private $host;//主机
private $user;//用户
private $pass;//密码
private $dbname;//数据库名
/**
* Description:数据库连接句柄
*/
private $db;
/**
* 私有化构造函数,防止外界实例化对象
*/
private function __construct($host, $user, $pass, $dbname)
{
$this->db = new mysqli($host, $user, $pass, $dbname) or die(mysql_errno());
}
/**
* 私有化克隆函数,防止外界克隆对象
*/
private function __clone()
{
}
/**
* 静态方法,单例访问统一入口
* @return Singleton:返回应用中的唯一对象实例
*/
public static function GetInstance($host, $user, $pass, $dbname)
{
if (!(self::$instance instanceof self)) {
self::$instance = new self($host, $user, $pass, $dbname);
}
return self::$instance;
}
/**
* 获取数据库的私有方法的连接句柄
*/
public function GetDbConnect()
{
return $this->db;
}
}
$db = Singleton::GetInstance('127.0.0.1', 'root', '', 'test');