我有:
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似乎描述了我继承时的情况,但对我而言并非如此。
答案 0 :(得分:0)
我相当确定,不使用显式参数或继承来实现此目的的唯一方法是从对debug_backtrace()
的调用中弹出第二个条目:
final class MyFinalCalss
{
public static function staticFunction()
{
echo "called from: " . debug_backtrace()[1]['class'] . "\n";
}
}