(PHP 5)
ReflectionMethod::__construct — Конструктор класса ReflectionMethod
Создает новый объект класса ReflectionMethod.
class
Имя класса или объекта (экземпляра класса), содержащего метод.
name
Имя метода.
Эта функция не возвращает значения после выполнения.
Исключение ReflectionException вызывается, если заданный метод не существует.
Пример #1 Пример использования ReflectionMethod::__construct()
<?php
class Counter
{
private static $c = 0;
/**
* Счетчик
*
* @final
* @static
* @access public
* @return int
*/
final public static function increment()
{
return ++self::$c;
}
}
// Создание экземпляра класса ReflectionMethod
$method = new ReflectionMethod('Counter', 'increment');
// Вывод основной информации
printf(
"===> %s%s%s%s%s%s%s метод '%s' (%s)\n" .
" объявлен в %s\n" .
" строки с %d по %d\n" .
" имеет модификаторы %d[%s]\n",
$method->isInternal() ? 'внутренний' : 'определенный пользователем',
$method->isAbstract() ? ' abstract' : '',
$method->isFinal() ? ' final' : '',
$method->isPublic() ? ' public' : '',
$method->isPrivate() ? ' private' : '',
$method->isProtected() ? ' protected' : '',
$method->isStatic() ? ' static' : '',
$method->getName(),
$method->isConstructor() ? 'конструктор' : 'обычный метод',
$method->getFileName(),
$method->getStartLine(),
$method->getEndline(),
$method->getModifiers(),
implode(' ', Reflection::getModifierNames($method->getModifiers()))
);
// Вывод документируемого комментария
printf("---> Комментарий:\n %s\n", var_export($method->getDocComment(), 1));
// Вывод статических переменных, если есть
if ($statics= $method->getStaticVariables()) {
printf("---> Статические переменные: %s\n", var_export($statics, 1));
}
// Вызов метода
printf("---> Результат вызова метода: ");
var_dump($method->invoke(NULL));
?>
Результатом выполнения данного примера будет что-то подобное:
===> определенный пользователем final public static метод 'increment' (обычный метод) объявлен в /Users/philip/cvs/phpdoc/test.php строки с 14 по 17 имеет модификаторы 261[final public static] ---> Комментарий: '/** * Счетчик * * @final * @static * @access public * @return int */' ---> Результат вызова метода: int(1)