您好,匿名用户
随意问技术百科期待您的加入

php如何输出一个匿名函数的代码

0 投票

在php 5.3以后加入了匿名函数,比如像这样一个函数定义

$test = function () {
    echo 'hello world';
}

像在js中可以直接输出这个函数体的定义代码,我能否在其它地方用类似echo $test的方法,输出它的函数体呢?

用户头像 提问 2013年 11月27日 @ Garen 上等兵 (269 威望)
分享到:

1个回答

0 投票

用反射可以实现,当然@Rodin也说了,我简单的把代码实现了下

<?php
$test = function () {
    echo 'hello world';
};

function closure_dump($closure) {
	try {
		$func = new ReflectionFunction($closure);
	} catch (ReflectionException $e) {
		echo $e->getMessage();
		return;
	}

	$start = $func->getStartLine() - 1;

	$end =  $func->getEndLine() - 1;

	$filename = $func->getFileName();

	echo implode("", array_slice(file($filename),$start, $end - $start + 1));
}

closure_dump($test);
用户头像 回复 2013年 11月28日 @ Cassiopeia 上等兵 (317 威望)
提一个问题:

相关问题

0 投票
1 回复 204 阅读
用户头像 提问 2012年 12月1日 @ Scorpio 上等兵 (220 威望)
0 投票
1 回复 36 阅读
用户头像 提问 2012年 12月1日 @ Graves 上等兵 (254 威望)
0 投票
1 回复 29 阅读
用户头像 提问 2012年 12月1日 @ Diana 上等兵 (326 威望)
0 投票
1 回复 23 阅读
用户头像 提问 2013年 12月15日 @ Rumble 上等兵 (394 威望)
0 投票
1 回复 49 阅读
用户头像 提问 2012年 12月1日 @ Shyvana 上等兵 (214 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...