📅  最后修改于: 2023-12-03 14:45:18.544000             🧑  作者: Mango
在 PHP 中,ReflectionClass 类提供了一个 getMethods() 函数,用于获取指定类的所有方法。
array ReflectionClass::getMethods([int $filter])
filter
(可选):指定一个过滤器,用于筛选想要获取的方法。可选的过滤器包括:
返回一个包含 ReflectionMethod 类实例的数组,每个实例代表一个方法。
以下示例演示了如何使用 ReflectionClass getMethods() 函数获取类的方法:
<?php
class MyClass {
public function myPublicMethod() {
// 公有方法
}
protected function myProtectedMethod() {
// 受保护方法
}
private function myPrivateMethod() {
// 私有方法
}
}
$reflection = new ReflectionClass('MyClass');
$methods = $reflection->getMethods();
foreach ($methods as $method) {
echo $method->getName() . "\n";
}
?>
输出:
myPublicMethod
getMethods
在上面的示例中,我们创建一个名为 MyClass
的类,并在其中定义了三个方法:myPublicMethod()
、myProtectedMethod()
和 myPrivateMethod()
。我们使用 ReflectionClass 类来反射 MyClass
,然后使用 getMethods() 函数获取了该类的方法。最后,我们遍历返回的方法数组,并使用 ReflectionMethod 类的 getName() 方法获取每个方法的名称并输出。
注意,getMethods() 函数默认返回指定类中的所有方法,不区分方法的可见性。如果想仅返回公有方法,可以传入 ReflectionMethod::IS_PUBLIC
过滤器作为参数。
ReflectionClass getMethods() 函数是一个强大的 PHP 反射功能,用于获取指定类的所有方法。它可以检查类的结构并提供有关类方法的详细信息,使程序员能够动态地分析和操作类的方法。