Мне нужно получить имена аргументов анонимной функции.
например:.
$func = function ( $param1, $param2 ) { ... };
$names = DO_SOMETHING($func);
// after this $names should become something like array('param1', param2')
Теоретически это возможно, потому что var_dump($func)
говорит, что $func
является объектом класса Closure
и имеет свойство parameter
, равное array('param1', 'param2')
.
Официальная документация на php.net не описывает методы класса Closure, которые могут мне помочь.
Я пытался получить доступ к этому свойству напрямую, но PHP умер с фатальной ошибкой: Closure object cannot have properties
.
Я пытался получить объектные переменные с помощью get_object_vars
, но, похоже, свойство parameter
считается закрытым (в любом случае get_object_vars
не возвращает его).
Единственный известный мне способ - перехватить вывод var_dump
и проанализировать его, но, как мы легко понимаем, это не тот способ, которым мы должны писать наши сценарии =)
Извините за мой плохой английский.