查找子类中哪个方法称为基类中的方法

时间:2015-06-11 04:40:16

标签: php reflection

我正在尝试从基类中调用my方法的子类中获取方法的名称。我怎么能得到这个?

class MyBaseClass {
    protected static function mybasemethod() {
        // how can I get the name of the method that called this?
        // I'm looking for 'myothermethod'
    }
}


class MyClassA extends MyBaseClass {
   protected static function myothermethod() {
       self::mybasemethod();
   }
}

2 个答案:

答案 0 :(得分:0)

要获取类的名称,您可以尝试使用函数 get_class_methods() To know more use this link

a[i] = a[++i];

答案 1 :(得分:-1)

感谢您激励今天的学习机会。我经常无所事事地想知道这是否可以做到,但从不打扰调查。现在,我知道它确实可以完成!

我在我正在测试的例程中测试了以下代码片段。

System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace ( false );
System.Diagnostics.StackFrame frame = trace.GetFrame ( 1 );
Console.WriteLine ( "Calling method = {0}" , frame.GetMethod ( ).Name );

输出如下。

Calling method = UtilsExercises

UtilsExercises是调用嵌入代码的例程的方法的名称。

前面的示例是对https://msdn.microsoft.com/en-us/library/system.diagnostics.stacktrace(v=vs.110).aspx StackTrace类文档中显示的示例的修改。