PHP如何列出类的所有公共职能(PHP how to list out all public fun

2019-07-30 12:28发布

我听说过get_class_methods()但有一个PHP的方式,从特定类收集所有的公共方法的阵列?

Answer 1:

是的,你可以看看反射类/方法。

http://php.net/manual/en/book.reflection.php和http://www.php.net/manual/en/reflectionclass.getmethods.php

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_PUBLIC);
var_dump($methods);


Answer 2:

作为get_class_methods()是范围敏感,你可以通过调用类范围外的函数得到一个类的所有公共方法:

因此,采取这个类:

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

    public function baz() {}

    public function __construct() {
        $this->bar();
    }
}

var_dump(get_class_methods('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)


Answer 3:

让所有的方法与后get_class_methods($theClass) ,你可以通过他们循环使用是这样的:

foreach ($methods as $method) {
    $reflect = new ReflectionMethod($theClass, $method);
    if ($reflect->isPublic()) {
    }
}


Answer 4:

你有没有尝试这种方式?

$class_methods = get_class_methods(new myclass());

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


文章来源: PHP how to list out all public functions of class
标签: php class