PHP中的单例模式
*单例模式不能通过 new 类名(); 来实例化对象
class Person{
private static $interion;
private $pop = array();
private function __construct(){}
public function getInterion(){
if(empty($interion)){
self::$interion = new Person();
}
return self::$interion;
}
public function setParam($key,$val){
$this->pop[$key] = $val;
}
public function getParam($key){
return $this->pop[$key];
}
}
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化
通用实例化对象的方法
$p = new Person();

单例模式下对类的操作来生成对象
$stu = Person::getInterion();
$stu->setParam("a","XY");
echo $stu->getParam("a");
.
单例模式的例子:比如对于数据库的操作时候。

浙公网安备 33010602011771号