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)