单例模式其实就是每次实例化时都会得到一个相同的对象.
单例模式的写法有个简单的口诀:三私一公即一个私有的静态属性,私有的构造方法,私有的克隆方法还有一个公共的静态方法.
<?php
class Cat{ //私有的静态属性 private static $instance;//私有的构造方法
private function __construct(){ echo "这是一个单例模式"; }//公共的静态方法
public static function getInstance(){ if(!self::$instance instanceof self){ self::$instance = new self; } return self::$instance; }// 私有的克隆方法
private function __clone(){}
}$cat = Cat::getInstance();
$cat1 = Cat::getInstance();
if($cat === $cat1){
echo "啊,成功了!"; }else{ echo '怎么会失败';}输出结果:
这是一个单例模式啊,成功了!