<?php
class Test{
//保存实例在此属性中,$_instance必须声明为静态的私有变量
private static $_instance;
//构造函数必须声明为private,防止外部new
private function __construct() {
}
//将__clone方法设置为私有,禁止clone对象实例
private function __clone() {
}
//单例方法
public static function getInstance() {
$class = __CLASS__;
if(!(self::$_instance instanceof $class)) {
self::$_instance = new $class;
}
return self::$_instance;
}
//普通方法
public function sayHello() {
echo 'Hello World!';
}
}
//error:Call to private Test::__construct()
$test = new Test();
//error:Call to private Test::__clone()
$test_clone = clone $test;
$test = Test::getInstance();
$test->sayHello();
PHP实现单例模式
最新推荐文章于 2023-04-24 22:29:17 发布