PHP单件模式,主要用于保证一个类只有一个实例并且这个实例易于被访问.如PHP对MySQL数据库的连接.
要保证一个类只有一个实例关键就是对构造函数的控制,即不能在外部随便实例化本类,只能从类内部实例化该类同时每次实例化一个对象时都检查是否已经存在这样的一个实例,存在则不再执行构造函数.具体代码[以连接数据库为例]如下:
<?php
private static $instance; //保存类DB_MySQL唯一的实例
private function __construct(){
//connect to database
}
public function getInstance(){ //获取类实例的公共接口[唯一途径]
if(!isset(self::$instance)){
self::$instance = new DB_MySQL();
}
return self::$instance;
}
}
?>
如果企图从类的外部直接实例化则会得到一个如下的致命错误报告:
Fatal error: Call to private DB_MySQL::__construct() from context '' in PHPDocument2 on line *
要得到类的实例就只能通过这样的语法: $case = DB_MySQL::getInstance();
2007-08-20 10:39:19
Views(1087)
Tags:
Comments