摘要:单例模式确保某一个类只有一个实例。<?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
老师总结:嗯!写的还算不错!但是缺少总结!下次记得加上自己的总结啊!继续加油吧!!!