
最佳答案
讨论数量:
private function __construct()
{
}
private function __clone()
{
}
单例类这些写,再加上final去修饰类名,除了unserialize和反射之外,算得上是一个更加健壮的单例。
<?php
final class Singleton
{
// 保存实例
private static $instance;
// 第一次获取时创建
public static function getInstance(): Singleton
{
if (null === static::$instance) {
static::$instance = new static();
}
return static::$instance;
}
// 防止通过构造函数实例化
private function __construct(){}
// 防止被克隆
private function __clone(){}
// 防止被反系列化
private function __wakeup(){}
}