PHP:如何创建将在另一个类中通过::(双冒号,范围分辨率)访问的函数[重复]

问题描述 投票:0回答:1

我正在尝试创建一个日志记录类,该类将在PHP应用程序周围的所有类中均可通过

logger::log(something);

这会将下一行添加到我的日志文件中(插入文件这一部分对我来说很容易)。我在DIBI(数据库框架)中看到了双冒号。这很酷,因为我可以在需要的地方使用dibi :: dataSource(“”)。但是不知道如何在我的应用程序中执行此操作。

现在,我在某些类中有一些东西(应用程序中有更多类似的类),例如(短):

Class DoSomething {
  function runTests() {
    logger::log("Test started");
    // do the magic
    logger::log("It ends");
  }
}

在index.php中,我有类似的内容:

// init
$app = new DoSomething;
$app->runTests();
...

而且我想在index.php中有一些代码,这将通过“ logger :: log();”在类中添加日志记录功能的可访问性。但是不知道该怎么做。您能帮我吗?

也许它可以以某种方式与“扩展”一起使用,但是有没有更简单的解决方案?我已经尝试阅读-https://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php,但仍然不确定如何执行此操作。

谢谢。

php scope-resolution
1个回答
0
投票

双冒号允许访问类中的静态函数和常量。


0
投票

如果我正确理解您的问题,那么您正在寻找的是静态方法。这种方法可以让您在不事先实例化对象的情况下调用函数(使用new Logger

© www.soinside.com 2019 - 2024. All rights reserved.