在学习设计模式时,我遇到了单例模式:
class Singleton
{
private static $instance = null;
private function __construct()
{
}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}
我很难理解构造函数在这种情况下的作用。大括号之间没有执行任何代码?这是如何运作的?谢谢。
最佳答案
标记为private
的构造函数是为了避免单例类的实例化,所以总是只有一个。
例如我们不能这样做:
$singleton = new Singleton();
它产生:
Fatal error: Call to private Singleton::__construct() from invalid context
您必须获取单例:
$singleton = Singleton::getInstance();
关于没有参数或可执行代码的 PHP 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432528/