Можно ли получить код от анонимной функции в PHP? - PullRequest
0 голосов
/ 22 декабря 2010

Предположим, у меня есть анонимная функция:

$func = function() { return true; }

Я хочу (динамически) получить строку "return true;" из переменной $func.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Вы можете отразить такую ​​функцию:

$test = function() { return true; };

$r = new ReflectionFunction($test);
var_dump($r->getName());

Однако из того, что я вижу в руководстве, PHP-API отражения не предоставляет никакого метода, который бы возвращал источник функции. Вы можете получить начальную и конечную строку объявления функции, что сочетается с таким стилем кода:

$test = function() {
    return false;
}

Позволит вам довольно легко получить источник функции. Но помните, что это очень сложно и как @Col. Шрапнель и @ DampeS8N упомянули: ты действительно не хочешь этого делать .

0 голосов
/ 22 декабря 2010

Нет, ты не можешь. Код анализируется, и строковое представление не существует.

...