0

如何使在类函数中创建的变量在该类函数之外可用?

例如,我的主类的构造函数创建了一个日志类的实例。我希望这个 $log 变量在我假设的其他类中可用(使用 global 关键字)。

这可能吗?

4

2 回答 2

1

您可以使用静态。

class Main
    {
    static private $log;

    public function __construct()
        {
        self::$log = new Log();
        }

    static public function getLog()
        {
        return self::$log;
        }
    }

现在您可以在任何地方使用 $log 访问

Main::getLog();
于 2013-03-20T02:48:57.267 回答
1

使用全局变量会破坏 OOP 的目的。OOP 旨在减轻依赖性并为模块化使用提供代码包含。

您只是在接近您的应用程序设计错误,而是设计访问日志实例的简易性。那是; 实例化您的日志记录类并将实例存储在其他依赖它的类可以访问(通过设计)的地方。一种“注册表”。

于 2013-03-20T02:49:45.003 回答