一直在研究php的设计模式,可是没有亲历使用过,因此仍是只知其一;不知其二,经过几天的学习终于对php的单例设计模式稍稍的有些了解,特此写出一个数据库处理类(只涉及到简单的原理),以便本身之后方便查阅,至于其余设计模式我会慢慢理解,而后会以实例的形式发布到该博客:php
/** * 单例模式 */ class Db{ private static $mysqli;//该类中的惟一一个实例 private function __construct(){}//防止在外部实例化该类 private function __clone(){}//禁止经过复制的方式实例化该类 public static function connect(){//数据库链接方法 self::$mysqli = new MySQLi("localhost","root","","test"); self::$mysqli->query("set names utf8"); } public static function select($table){//数据库操做方法,后续能够继续完善和添加...... self::connect(); $result = self::$mysqli->query("select * from ".$table); $result_arr = array(); while($query = $result->fetch_assoc()){ $result_arr[] = $query; } return $result_arr;//结果集以数组的形式返回 } } $result = Db::select("article"); echo '<pre>'; print_r($result); echo '</pre>';
还有第二种写法:以下mysql
class Db{ private static $_instance = null;//该类中的惟一一个实例 private $dbConn; private function __construct(){//防止在外部实例化该类 $this->dbConn = new MySQLi("localhost","root","","test"); $this->dbConn->query("set names utf8"); } private function __clone(){}//禁止经过复制的方式实例化该类 public static function getInstance(){ if(self::$_instance == null){ self::$_instance = new self(); } return self::$_instance; } public function select($table){//数据库操做方法,后续能够继续完善和添加...... $result = $this->dbConn->query("select * from ".$table); $result_arr = array(); while($query = $result->fetch_assoc()){ $result_arr[] = $query; } return $result_arr;//结果集以数组的形式返回 } } $db = Db::getInstance(); $result = $db->select('article'); echo '<pre>'; print_r($result); echo '</pre>';