**单例模式:在开发中保证某个类的对象实例只能有一个**
## 需要知识:
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不是同一個對象';
}
~~~