如何从方法列表中排除继承的方法,Reflection(PHP)

时间:2013-02-27 04:00:26

标签: php class reflection

我正在尝试使用反射列出PHP中所有类的方法/属性。简单的列表有效。

但它也列出了基类的属性和方法。我该如何过滤这个?

TKS!

1 个答案:

答案 0 :(得分:2)

请注意,ReflectionMethod的方法为getDeclaringClass()。此方法返回方法所在的类。仅显示在类中声明的方法,您应该尝试这样:

$class = new ReflectionClass('YourClass');

foreach($class->getMethods() as $m) {
    if($m->getDeclaringClass()->getName() === 'YourClass') {
        echo $m->getName(), PHP_EOL;
    }
}

其中YourClass是这样的:

class YourClass extends DOMDocument {


    public function doSomething() {
        // ...
    }


    public function doSomethingElse() {
        // ...
    }

}