假设我有一个匿名的PHP函数,就像这样:
<?php
$l = function() { echo "hello world"; };
有没有可能获得匿名函数
$l
的字符串表示形式,即包含函数体的字符串?我尝试了一些方法:
echo $l;
PHP 可捕获致命错误:无法将闭包类的对象转换为字符串var_dump($l);
类 Closure#1 (0) { }echo $l->__toString();
: 调用未定义的方法 Closure::__toString()get_class_methods($l)
返回array('bind', 'bindTo')
,因此似乎不存在未记录的方法$r = new ReflectionClass($l);
: getProperties()、getConstants() 和 getStaticProperties() 都为空,同时$r->__toString()
没有返回有用的内容。
create_function()
怎么样?这样你就可以将函数内容作为字符串传递,然后通过该函数仅需为其命名即可。 - Javadcreate_function()
,但这样语法只会在运行时检查,有点违背了匿名函数的概念。 - Michael Oslcreate_function()
的手册,你可以按照这个方式创建一个匿名函数[http://ca1.php.net/create_function](请查看第一个示例)。 - Javadcreate_function()
。 - Sammitch