如何获得在php中调用静态函数的类的名称

时间:2018-07-06 17:09:55

标签: php

我有:

public class MyCaller { 

  //Some code
  MyFinalClass::staticFunction();
}

final class MyFinalClass {
  public static staticFunction(){
    echo "I want this to be printing MyCaller or any other class when it calls the function."

}

我将如何实现?如果有一种方法,我可以隐式传递调用类作为某种默认参数,而我不必在其中进行硬编码,那么我也可以,但我不想每次都手动将其放入。

This似乎描述了我继承时的情况,但对我而言并非如此。

1 个答案:

答案 0 :(得分:0)

我相当确定,不使用显式参数或继承来实现此目的的唯一方法是从对debug_backtrace()的调用中弹出第二个条目:

final class MyFinalCalss
{
    public static function staticFunction()
    {
        echo "called from: " . debug_backtrace()[1]['class'] . "\n";
    }
}