【问题标题】:what shared instance and new instance什么共享实例和新实例
【发布时间】:2018-03-19 05:50:26
【问题描述】:

来自 flightphp 框架文档:

默认情况下,每次加载课程时,您都会获得一个共享的 实例。要获取一个类的新实例,只需将 false 作为 参数:

// Shared instance of the class
$shared = Flight::db(); 

// New instance of the class
$new = Flight::db(false);

什么是共享实例? 这两种类型在行动上有什么区别?

【问题讨论】:

    标签: php flightphp


    【解决方案1】:

    Flight::db() 是一个返回类实例的静态方法。

    通常使用单例模式,这意味着如果多次调用 Flight::db(),所有变量都指向同一个实例。

    如果你调用 Flight::db(false),每次调用都会创建一个新对象,这意味着如果你多次调用它,每次调用都会得到一个自己的对象。

    【讨论】:

    • 如果我在多个类和函数中调用 Flight::db() 会怎样?它们都指向同一个实例吗?
    • 这正是单例应该如何工作的。无论何时调用它,无论从哪里调用,只要您在同一个服务器调用中,您总是会得到相同的实例。
    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2015-04-07
    • 1970-01-01
    相关资源
    最近更新 更多