PHP如何列出类的所有公共函数

PHP如何列出类的所有公共函数,php,class,Php,Class,我听说过get\u class\u methods(),但是在PHP中有没有一种方法可以从特定的类中收集所有公共方法的数组?您尝试过这种方法吗 $class_methods = get_class_methods(new myclass()); foreach ($class_methods as $method_name) { echo "$method_name\n"; } 是的,您可以查看反射类/方法 及 使用get\u class\u方法($theClass)获取所有方法后

我听说过
get\u class\u methods()
,但是在PHP中有没有一种方法可以从特定的类中收集所有公共方法的数组?

您尝试过这种方法吗

$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

是的,您可以查看反射类/方法


使用
get\u class\u方法($theClass)
获取所有方法后,您可以使用如下内容循环它们:

foreach ($methods as $method) {
    $reflect = new ReflectionMethod($theClass, $method);
    if ($reflect->isPublic()) {
    }
}
由于是范围敏感的,只需从类的范围外调用函数,就可以获得类的所有公共方法:

那么,我们来上这节课:

class Foo {
    private function bar() {
        var_dump(get_class_methods($this));
    }

    public function baz() {}

    public function __construct() {
        $this->bar();
    }
}
var_dump(get_class_方法('Foo')将输出以下内容:

array
  0 => string 'baz' (length=3)
  1 => string '__construct' (length=11)
而来自类范围内的调用(
new Foo;
)将返回:

array
  0 => string 'bar' (length=3)
  1 => string 'baz' (length=3)
  2 => string '__construct' (length=11)

嗯,
get_class_方法($class)
是一种收集特定类的所有公共方法数组的方法……如果您想使用
get_class_方法
仅检索公共方法,它必须在类外使用。..get_class_方法($class)返回所有公共或没有关键字的方法。因此,任何私有方法都不会被返回。我认为Kristian特别要求列出公共方法。我挖掘了使用静态方法所带来的简单性,而不是通过ReflectionMethod的实例化。这不是正确的解决方案:您还得到了静态函数。
array
  0 => string 'bar' (length=3)
  1 => string 'baz' (length=3)
  2 => string '__construct' (length=11)