【问题标题】:PHP instantiate class in main program, access from functionsPHP在主程序中实例化类,从函数访问
【发布时间】:2011-07-16 21:43:17
【问题描述】:

阅读有关单例和模式的内容让我头疼,一定有更简单的方法...

我有一个很好的实用函数,称为 log_it($severity,$message),它在许多程序中都使用。它创建代码以将特定于应用程序的日志条目附加到磁盘上的共享日志中。当我在全局范围内(使用 require)加载一次函数时,它可以在整个程序中的任何函数中使用。

出于各种充分的理由,我将整个应用程序转换为面向对象。 我想创建一个具有 log_it($severity,$message) 方法的记录器类。

我想在全局范围内创建一次对象,然后在函数中使用它。 我宁愿不必在我想使用它的每个函数中将对象声明为全局。换句话说,我想模拟简单的非对象函数的全局可见性,但使用一个类。我想做的是在主程序中有 $log=new logger() ,然后从任何地方调用 $log->log_it() ,不用多说。

希望有一个简单的方法来做到这一点?

【问题讨论】:

    标签: php object scope


    【解决方案1】:

    您可以将log_it 声明为静态方法。并从您想要的任何地方调用它,而无需实例化该类。像这样:

    logger::log_it()
    

    【讨论】:

    • 感谢拉希姆提供的信息。以这种方式使用静态声明的类与通过 require 简单地包含代码相比有什么优势吗?
    猜你喜欢
    • 2016-01-15
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多