怎么算是个单例模式,怎么确认是单例模式?参考以下代码
error_reporting(0);
class Authorization{
protected static $authorization = NULL;
protected static $num=0;
public static function &instance() {
if (self::$authorization == NULL){
self::$authorization = new Authorization();
self::$num++;
}
//
// 如果把上门注释掉,打开下面两行就不是单例模式,就会被多new好多次
// self::$num++;
// return new Authorization;
}
public function say(){
echo 'say--'.self::$num;
}
}
$p1=Authorization::instance();
$p2=Authorization::instance();
$p3=Authorization::instance();
echo $p1->say();
echo $p2->say();
另外一种方法 :
if(self::$authorization instanceof self){
return self::$authorization;
}else{
self::$num++;
self::$authorization=new self();
return self::$authorization;
}输出打印下就明白了。