php单例模式

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();

posted @ 2017-06-19 13:53  虚无缥缈的云  阅读(89)  评论(0编辑  收藏  举报