ReflectionClass::getMethods

(PHP 5, PHP 7)

ReflectionClass::getMethodsВозвращает список методов в виде массива

Описание

public ReflectionClass::getMethods ( int $filter = ? ) : array

Возвращает список методов в виде массива.

Список параметров

filter

Фильтрация результата для включения в список только методов с определенными атрибутами. По умолчанию фильтрации нет.

Комбинация из следующих констант через логическое ИЛИ: ReflectionMethod::IS_STATIC, ReflectionMethod::IS_PUBLIC, ReflectionMethod::IS_PROTECTED, ReflectionMethod::IS_PRIVATE, ReflectionMethod::IS_ABSTRACT, ReflectionMethod::IS_FINAL, так что все методы с любым из перечисленных атрибутов будут возвращены.

Замечание: Обратите внимание, что прочие побитовые операции, к примеру ~ не будут работать так, как ожидается. Другими словами, например, невозможно получить все нестатические методы.

Возвращаемые значения

Массив (array) объектов класса 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"
  }
}

Смотрите также