06 php 单例模式
一:单例模式的三大原则 (1)构造函数需要标记为非public(防止外部使用new操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化。 (2)拥有一个保存类的实例的静态成员变量$_instance (3)拥有一个访问这个实例的公共静态的方法 二:实现代码 <?php
class 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);*/