一尘不染

重建/获取php函数代码

php

我可以通过编程获得名称的功能代码吗?

喜欢:

function blah($a, $b) { return $a*$b; }
echo getFunctionCode("blah");

可能吗?

是否有任何PHP自描述函数来重构函数/类代码?
(意味着不要从源文件中正确获取源代码)

在Java中存在:http
:
//java.sun.com/developer/technicalArticles/ALT/Reflection/

在PHP:
get_class_method(0函数)
的typeof
ReflectionFunction(感谢阿林Purcaru)


阅读 218

收藏
2020-05-29

共1个答案

一尘不染

扩展使用ReflectionFunction的建议,您可以使用类似以下的内容:

$func = new ReflectionFunction('myfunction');
$filename = $func->getFileName();
$start_line = $func->getStartLine() - 1; // it's actually - 1, otherwise you wont get the function() block
$end_line = $func->getEndLine();
$length = $end_line - $start_line;

$source = file($filename);
$body = implode("", array_slice($source, $start_line, $length));
print_r($body);
2020-05-29