class databaseConnect
{
private static $_instance=null;
private static $_count;
//禁止析构函数重载
private final function __construct()
{
//数据库连接代码
self::$_count +=1;
echo'实例化了'.self::$_count.'次';
}
//禁止克隆
//private function __clone(){}
public function getInstance()
{
if(!(self::$_instance)){
self::$_instance=new databaseConnect();
}
return self::$_instance;
}
}
$conn = databaseConnect::getInstance();
$conn = databaseConnect::getInstance();
$conn = databaseConnect::getInstance();
不阻止克隆的话下面的子类可以无限的克隆实例
class aaa extends databaseConnect
{
public function getInstance(){
for($i=1;$i<=1000000;$i++){
$a=clone databaseConnect::getInstance();
}
}
}
aaa::getInstance();