php - 使用 self::$_instance = new self() 有什么意义

标签 php

我正在学习 OOP PHP 并且遇到了这个问题:

//Store the single instance
private static $_instance;

/*
    Get an instance of the database
    @return database
*/
public static function getInstance () {
    if (!self::$_instance) {
        self::$_instance = new self();
    }
    return self::$_instance;
}

$_instance 设置为新的 self() 有什么意义?我知道这条线所做的就是创建它所在类的一个新实例,但为什么需要这样做呢?有什么理由需要这个吗?我什至不会在类里面再次调用它。感谢您在高级方面的任何帮助。

最佳答案

这个想法是,每当您在整个代码中调用 getInstance() 时,您总是会得到相同的实例。

这在您只想访问同一个对象的某些情况下很有用。通常,像这样的对象可能有一个私有(private)构造函数,它有效地强制你总是作用于同一个实例(也称为单例)。

通常人们会说“单例是邪恶的”。最好避免使用它们,因为它们会导致主要的设计问题。但在某些情况下,它们仍然是一个好主意。

关于php - 使用 self::$_instance = new self() 有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376762/

相关文章:

php - Android 向 PHP 发送字符串

php - mysql 产品和变体数据库架构

php - 将字符串转换为日期和日期时间

php - 字符串中的元素数量与绑定(bind)变量的数量不匹配

php - 如何使用 PHP 在我的安全站点上显示 protected Amazon S3 图像?

php - Laravel Faker 工厂关系

php - 从现有连接获取当前 PDO 驱动程序?

php - 如何为通过 PHP 发送到 android 的 json 数据设置 if 条件

php - 无法加载 imagick 库

php - 强制网络浏览器播放文件而不是下载