**單例模式:在開發中保證某個類的對象實例只能有一個**
## 需要知識:
1. 訪問權限
2. 繼承
3. static
4. 構造函數
5. 對象克隆
6. final關鍵字
~~~
<?php
class DBHelper{
private $conn;
private static $instance=null;
//防止用戶直接new對象
private function __construct(){
$this->conn=@mysql_connect('localhost','root','root');
}
public function query($sql){
echo "完成對數據庫的操作";
}
public static function getDB(){
//第一種寫法
//if(self::$instance == null){
//self::$instance=new DBHelper();
//}
//第二種寫法
if(!(self::$instance instanceof self)){
self::$instance =new self();
}
return self::$instance;
}
//阻止克隆
private function __clone(){}
}
$db1=DBHelper::getDB();
$db2=DBHelper::getDB();
echo '<pre>';
if($db1===$db2){
echo "db1===db2";
}else{
echo 'db1和db2不是同一個對象';
}
~~~