单例模式

三个私有一个公有

实例化对象

<?php
class Db{
  static private $_instance;
  static private $_connectSource;
  private $_dbConfig = [
        'host' => '127.0.0.1',
        'user' => 'root',
        'password' => '',
        'database' => 'hanling'
  ];

  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){
         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();
var_dump($connect);//资源

?>

 

/**
* 获取DB单例
*
* @param string $dbName 库名
* @return DB
*/
public static function getInstance($dbName = '') {
if (empty(self::$_instance[$dbName])) {
$dbConfig = Config::get('app', 'mysql');
self::$_instance[$dbName] = new self(
$dbConfig['user'],
$dbConfig['password'],
empty($dbName) ? $dbConfig['dbname'] : $dbName,
$dbConfig['host'],
);
}

return self::$_instance[$dbName];
}
posted @ 2017-06-25 21:58  玲汐  阅读(127)  评论(0编辑  收藏  举报