码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式小示例

时间:2018-10-13 13:52:06      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:else   不能   nal   instance   sel   stat   clone()   null   子类   

header("Content-type:text/html;charset=utf-8");
// final修饰类,则Single类不能被子类继承
final class Single{
// 声明私有的静态变量
private static $instance;

// 构造函数
private function __construct(){}

// 获取单例对象函数
static public function getInstance(){
    if(!is_null(self::$instance)){
        return self::$instance;
    }else{
        return self::$instance = new Single();
    }
}

// 禁止对象的克隆,clone关键字使用时会报错
private function __clone(){
}

}

$obj1 = Single::getInstance();
var_dump($obj1);

$obj2 = Single::getInstance();
var_dump($obj2);

// 这里会报错
$obj3 = clone $obj2;
var_dump($obj3);

单例模式小示例

标签:else   不能   nal   instance   sel   stat   clone()   null   子类   

原文地址:http://blog.51cto.com/suyanzhu/2299535

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!