(PHP 5, PHP 7, PHP 8)
ReflectionClass::getMethods — 获取方法的数组
$filter = ?): array获取类的方法的一个数组。
filter过滤结果为仅包含某些属性的方法。默认不过滤。
       
       ReflectionMethod::IS_STATIC、
       ReflectionMethod::IS_PUBLIC、
       ReflectionMethod::IS_PROTECTED、
       ReflectionMethod::IS_PRIVATE、
       ReflectionMethod::IS_ABSTRACT、
       ReflectionMethod::IS_FINAL 的按位或(OR),就会返回任意满足条件的属性。
      
注意: 请注意:其他位操作,例如
~无法按预期运行。这个例子也就是说,无法获取所有的非静态方法。
包含每个方法 ReflectionMethod 对象的数组。
示例 #1 ReflectionClass::getMethods() 的基本用法
<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}
$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>
以上例程会输出:
array(3) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  &object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}
示例 #2 从 ReflectionClass::getMethods() 中过滤结果
<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}
$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>
以上例程会输出:
array(2) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}