单例模式小示例

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);

猜你喜欢

转载自blog.51cto.com/suyanzhu/2299535