php - 新关键字与创建实例

标签 php oop instantiation

在一些开源代码上,他们为什么使用:

$router = Cfw_Router::getInstance();

不仅仅是使用

$rounter = new Cfw_Router();

有什么优势吗?


getInstance():

public static function getInstance() {
    if (null === self::$__instance) {
        self::$__instance = new self();
    }
    return self::$__instance;
}

最佳答案

他们正在使用 singleton pattern .基本上,它只允许在任何给定时间存在一个实例。但是,它有时可用于提供全局变量,这在设计中并不总是最好的(请参阅上面链接中的批评)。

关于php - 新关键字与创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199228/

相关文章:

php - preg_match() : Unknown modifier 'h' in php

javascript - 我需要创建一个多选项选择页面,其中每个选择都会增加或减少产品的价格

java - 如何在 Java 中创建一个泛型数组?

c# - 如何在 WCF 中将类型公开为不同的名称?

database - 为什么应用程序开发人员可以做数据库的事情,而数据库开发人员却试图远离应用程序的事情?

ios - 使用自定义 init 实例化带有标识符的 View Controller

c# - 分配的值未在任何执行路径中使用 - C#

php - 使用php显示mysql数据

php - 使用 md5() 对密码进行散列并将其存储到数据库后,无法再次登录

java - 具有不同签名和返回类型的方法重载