单例模式就是只创建一个类的实例,在PHP中常用语数据库类的封装。
- 将__construct设为私有,防止new实例化
- 将__clone设为私有,防止对象克隆
- 添加返回单一实例的方法,getInstance
单例模式用于保证在应用程序的一次执行过程中(PHP中对应一次HTTP请求解析过程中),单例类的对象只存在一个。
<?php
class Demo{
private static $instance;
private function __construce(){
}
private function __clone(){
}
public static function getInstance(){
if(!self::$instance instanceof self){
self::$instance = new self;
}
return self::$instance;
}
}
$obj1 = Demo::getInstance();
$obj2 = Demo::getInstance();
var_dump($obj1);
echo "<br/>";
var_dump($obj2);
输出结果:
object(Demo)[1]
object(Demo)[1]