单例模式总结

原创2018-11-13 11:27:0759
摘要:单例模式确保某一个类只有一个实例。<?php /*  * 单例数据库连接  */ class Db {   private static $_instance; //static可以保存值不丢失   private static $_dbConnect;

单例模式确保某一个类只有一个实例。

<?php
/*
 * 单例数据库连接
 */
class Db {
  private static $_instance; //static可以保存值不丢失
  private static $_dbConnect;
  private $_dbConfig = array(
    'host' => '127.0.0.1',
    'user' => 'root',
    'password' => '',
    'database' => 'yii2basic',
  );//保存数据库的配置信息
 
  //使用private防止用户new
  private function __construct(){
 
  }
 
  //重写clone防止用户进行clone
  public function __clone(){
    //当用户clone操作时产生一个错误信息
    trigger_error("Can't clone object",E_USER_ERROR);
  }  
 
  //由类的自身来进行实例化 
  public static function getInstance(){
    if(!(self::$_instance instanceof self)){
      self::$_instance = new self();
    }
    return self::$_instance;
  }
 
  public function connect(){
    self::$_dbConnect = @mysql_connect($this->_dbConfig['host'],
      $this->_dbConfig['user'],$this->_dbConfig['password']);
 
    if(!self::$_dbConnect){
      throw new Exception("mysql connect error".mysql_error());
    }
 
    mysql_query("SET NAMES UTF8");
    mysql_select_db($this->_dbConfig['database'],self::$_dbConnect);
    return self::$_dbConnect;
  }
}
 
$a = Db::getInstance();
try{
  $a->connect();
}catch(Exception $e){
  echo "sorry,error was happend.".$e->getMessage();
}


批改老师:韦小宝批改时间:2018-11-13 14:10:41
老师总结:嗯!写的还算不错!但是缺少总结!下次记得加上自己的总结啊!继续加油吧!!!

发布手记

热门词条