abstract:<?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');
Correcting teacher:天蓬老师Correction time:2019-03-19 15:44:20
Teacher's summary:以后要注意: GetDbConnect() 这样的方法名称, 是不符合规范的, 首字母应该小写, 除了类外, 其它的标识符, 首字母都不要大写