以下是一个简单的 PHP 单例模式的示例:
class Singleton {
// 保存实例的静态变量
private static $instance;
// 私有构造方法,防止外部实例化
private function __construct() {}
// 获取实例的静态方法
public static function getInstance() {
if (!isset(self::$instance)) {
// 如果实例不存在,创建一个新实例
self::$instance = new self();
}
return self::$instance;
}
// 示例方法
public function showMessage() {
echo "Hello, I am a singleton instance!\n";
}
}
// 客户端代码
$singleton1 = Singleton::getInstance();
$singleton1->showMessage();
$singleton2 = Singleton::getInstance();
$singleton2->showMessage();
// 判断两个实例是否相同
var_dump($singleton1 === $singleton2); // 输出 true
在这个例子中,Singleton 类有一个私有的静态成员变量 $instance,用于保存唯一的实例。构造方法 __construct 是私有的,防止外部通过 new 操作符实例化该类。通过静态方法 getInstance,我们可以获取该类的唯一实例。
客户端通过调用 Singleton::getInstance() 来获取实例,无论调用多少次,都会得到同一个实例。这样确保了在整个应用程序中只有一个 Singleton 实例存在。
单例模式通常用于管理全局状态、数据库连接、日志记录器等需要在整个应用程序中共享的资源。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11937/PHP