Конструктор класса ReflectionFunction


(PHP 5)

ReflectionFunction::__constructКонструктор класса ReflectionFunction

Описание

public ReflectionFunction::__construct ( mixed $name )

Создает объект класса ReflectionFunction.

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

name

Имя reflection-функции или замыкания.

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

Эта функция не возвращает значения после выполнения.

Ошибки

Объект класса ReflectionException, если аргумент name не содержит допустимой функции.

Список изменений

Версия Описание
5.3.0 name теперь может быть замыканием.

Примеры

Пример #1 Пример использования ReflectionFunction::__construct()

<?php
/**
 * Простой счетчик
 *
 * @return    int
 */
function counter1()
{
    static 
$c 0;
    return ++
$c;
}

/**
 * Другой счетчик
 *
 * @return    int
 */
$counter2 = function()
{
    static 
$d 0;
    return ++
$d;

};

function 
dumpReflectionFunction($func)
{
    
// Вывод основной информации
    
printf(
        
"\n\n===> %s функция '%s'\n".
        
"     объявлена в %s\n".
        
"     строки с %d по %d\n",
        
$func->isInternal() ? 'internal' 'user-defined',
        
$func->getName(),
        
$func->getFileName(),
        
$func->getStartLine(),
        
$func->getEndline()
    );

    
// Печать документации
    
printf("---> Документация:\n %s\n"var_export($func->getDocComment(), 1));

    
// Вывод статических переменных
    
if ($statics $func->getStaticVariables())
    {
        
printf("---> Статические переменные: %s\n"var_export($statics1));
    }
}

// Создание объекта класса ReflectionFunction
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

Результатом выполнения данного примера будет что-то подобное:

 ===> user-defined функция 'counter1'      объявлена в Z:\reflectcounter.php      строки с 7 по 11 ---> Документация:  '/**  * Простой счетчик  *  * @return    int  */' ---> Статические переменные: array (   'c' => 0, )   ===> user-defined функция '{closure}'      объявлена в Z:\reflectcounter.php      строки с 18 по 23 ---> Документация:  '/**  * Другой счетчик  *  * @return    int  */' ---> Статические переменные: array (   'd' => 0, ) 

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