没有参数或可执行代码的 PHP 构造函数

标签 php singleton

在学习设计模式时,我遇到了单例模式:

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/

相关文章:

iOS (Swift) 单例 Realm 对象

java - Initialization On Demand Holder 成语

javascript - JavaScript 中的单例实例范围困惑

php - Android XMPP - 服务器端

php - Laravel 定义关系

php - 如何通过 Amazon SNS 推送通知在负载中发送额外参数

php - 针对 SQL 表的验证

c++ - CPP 中的单例

inheritance - Kotlin - 委托(delegate)而不是单例中的继承

PHP - 添加到数组