我需要在php类中获得特定函数的注释,例如:
/* Some commets for a class */
class Foo extends Bar {
function __construct() {}
// a single line comment to the function foo()
function foo() {}
/* a multi-line comment
to the function bar() */
public static function bar() {}
}
是的我知道,这可以通过ReflectionMethod-> getDocComment()轻松完成,但它对我不起作用,因为我使用eAccelerator并从代码中删除所有注释,因此getDocComment始终返回FALSE。
我也不想重新编译eAccelerator:)
我需要这样的功能:
function get_function_comment($class_contents, $function_name) {}
这样我将返回一个函数的注释,$ class_contents是一个变量,它存储类内容,如上例所示。
我试图自己做,但我无法创建一个正确的正则表达式..
请帮帮我:)。
答案 0 :(得分:1)
哦,伙计,我写这个正则表达式几乎感觉很脏,但是这可能就行了(没有测试过,所以不要理我的话)。
preg_match('#(//.*$|/\*.*\*/)\s*$[\s\w]*function\s+$function_name\b#Usmi', $class_contents, $result);
理论上,它的作用如下:
在实践中:“有些人在遇到问题时会想”我知道,我会使用正则表达式。“现在他们有两个问题。”
答案 1 :(得分:0)
尝试使用正确的phpDoc评论:
/**
* Something explaining this
*
* @return string
*/
function foo(){ }