如何获得该类中的所有函数名称? (不扩展)

时间:2018-07-24 23:34:05

标签: php

我正在尝试使用PHP获取类中的所有函数名称。使用get_class_methods()方法。但这会写入我扩展的类的函数名称。我想要的只是我正在调用的类的函数名称。

示例:

class a {
   public function index() {
      //...
   }
}

class b extends a {
   public function indexb() {
     //...
   }
}

print_r(get_class_methods(new b()));

输出:

array([0] => index, [1] => indexb);

(索引)我不要这个区域。

最好的问候。

1 个答案:

答案 0 :(得分:2)

如果只希望子类的方法,则需要使用Reflection

<?php

class A
{
    public function index() {}
}

class B extends A
{
    public function indexB() {}
}

$reflection = new ReflectionClass('B');

$methods = array_reduce($reflection->getMethods(), function($methods, $method) {
    if ($method->class == 'B') $methods[] = $method->name;

    return $methods;
}, []);

print_r($methods);

还有一个可行的示例:https://3v4l.org/veTeQ