1. 简介
在 PHP 中,我们经常需要获取类中的方法名,例如用于动态调用方法或输出类中所有的方法列表。在本文中,我们将介绍几种获取 PHP 类中方法名的方法。
2. 使用反射
PHP 反射是一种强大的功能,可以让我们检查类、方法和属性等的结构。通过使用反射类,我们可以轻松地获取类中的方法名。
2.1 获取类中所有方法名
下面的代码示例演示了如何使用反射获取一个类中所有的方法名:
class MyClass {
public function myMethod1() {
// code here
}
private function myMethod2() {
// code here
}
protected function myMethod3() {
// code here
}
}
$reflection = new ReflectionClass('MyClass');
$methods = $reflection->getMethods();
foreach ($methods as $method) {
echo $method->getName() . "<br>";
}
这段代码首先创建了一个包含了三个方法的 MyClass
类。然后,使用 ReflectionClass
创建了类的反射类对象。通过调用 getMethods
方法,我们可以获取到一个方法对象的数组。最后,使用循环遍历方法对象并通过调用 getName
方法获取方法名。
2.2 获取指定访问修饰符的方法名
有时候,我们只需要获取类中特定访问修饰符的方法名,例如只获取 public 方法或者只获取 protected 方法。
$reflection = new ReflectionClass('MyClass');
$methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method) {
echo $method->getName() . "<br>";
}
上面的代码演示了如何获取 MyClass
类中所有 public
方法的方法名。只需在调用 getMethods
方法时传入适当的修饰符参数即可。
3. 使用 get_class_methods()
PHP 内置函数 get_class_methods()
也可以用于获取类中的方法名。不过,这个函数只能获取 public 方法。
class MyClass {
public function myMethod1() {
// code here
}
private function myMethod2() {
// code here
}
}
$methods = get_class_methods('MyClass');
foreach ($methods as $method) {
echo $method . "<br>";
}
上面的代码中,我们创建了一个包含两个方法的 MyClass
类。然后,通过调用 get_class_methods
函数获取类中的所有方法名。
4. 总结
本文介绍了如何在 PHP 中获取类中方法名的几种方法。我们可以使用反射类来获取所有方法名,并可以根据需求获取指定访问修饰符的方法名。此外,还可以使用 get_class_methods()
函数来获取类中的方法名。
通过掌握这些方法,我们可以更加灵活地操作类中的方法,实现更加高级和动态的功能。