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