单例模式

class Single{
    //$ins静态属性,用来存放实例对象
    static public $ins='';
    protected $hash;
    //1.final 构造方法,防止子类覆盖方法。2.保护私有方法,无法类外实例化。
    final protected function __construct(){
        $this->hash=mt_rand(1,9999);
    }
    //实例化对象
    static public function getInstance(){
        if(self::$ins instanceof self){
            //存在,返回该对象
            echo '存在,返回该对象';
            return self::$ins;
        }else{
            //不存在,则创建
            echo '不存在,则创建';
        self::$ins=new self();
        return self::$ins;
        }
    }
}

$s1=Single::getInstance();
$s2=Single::getInstance();
echo '<pre>';
var_dump($s1);
var_dump($s2);
echo '</pre>';
if($s1===$s2){
    echo 1;
}else{
    echo 0;
}

posted @ 2017-05-04 16:20  皇家玄学团  阅读(95)  评论(0编辑  收藏  举报