Скажем, у меня есть анонимная PHP-функция вроде этого:
<?php
$l = function() { echo "hello world"; };
Можно ли получить строковое представление анонимной функции $l
, то есть строку, содержащую тело функции?
Я пробовал несколько вещей:
-
echo $l;
PHP Catchable fatal error: Объект класса Closure не может быть преобразован в строку -
var_dump($l);
class Closure # 1 (0) {} -
echo $l->__toString();
: вызов метода undefined Closure:: __ toString() -
get_class_methods($l)
возвращаетarray('bind', 'bindTo')
, поэтому, похоже, не существует недокументированных методов. -
$r = new ReflectionClass($l);
: getProperties(), getConstants() и getStaticProperties() пустые, также$r->__toString()
не возвращает ничего полезного.
Мне действительно не нужно это в моем коде, я просто подумал, что это может быть полезно для ведения журнала, если что-то пойдет не так. После того, как я не смог найти решение самостоятельно, мне любопытно, возможно ли это вообще.