php的单例模式
单例模式:指的是一个对象的模式,指一个类只能创建一个对象。
既然限制一个类只能创建一个对象,就是说要关闭其他创建对象的途径。
所以实现单例,必须满足一下条件:
1.不让克隆(私有克隆方法)
2.不让创建对象(私有构造方法,不能在类外部使用new关键字创建对象)
3.在类中创建对象(静态方法)
4.判断对象是否存在,如果存在返回原对象,否则创建新对象
使用单例模式好处在于可以节省资源,比如Db类设计,比如window系统常见的资源管理器。
<?php class Single{ //定义一个属性保存对象 private static $single; //私有构造方法 private function __construct($name){ $this->$single = $name; } //私有化克隆方法 private function __clone(){ } //静态方法:让类进入到类的内部进行实例化得到对象 public static function getInstance($name){ //判断对象是否存在,如果存在返回原对象,否则创建新对象 if(!self::$single){ self::$single = new Single($name); } return self::$single; } } $single = Single::getInstance('libai'); var_dump($single);$single = Single::getInstance('dufu'); var_dump($single);