摘要:<?php //單例模式--數據庫連接 class Singleton { /** * 1)靜態(tài)變量,保存全局實例,跟類綁定,跟對象無關 * 2)私有屬性,為了避免類外直接調用 類名:
<?php //單例模式--數據庫連接 class Singleton { /** * 1)靜態(tài)變量,保存全局實例,跟類綁定,跟對象無關 * 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() { } /** * 靜態(tài)方法,單例訪問統(tǒng)一入口 * @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');