PHP,Tokenizer,查找函数的所有参数

Ant*_*ton 5 php tokenize

帮助我使用源代码中的函数token_get_all()查找函数"funcname"的所有参数.这听起来很简单,但有许多特殊选项,例如数组作为参数或调用静态方法作为参数.也许有一个简单的通用解决方案?

UPD:

我需要调用它时传递的函数参数.让他们进行文件的外部分析.例如,有一个php文件:

<?php
funcname('foo');
funcname(array('foo'), 'bar');
Run Code Online (Sandbox Code Playgroud)

分析仪应如下开始:

$source = file_get_contents('source.php');
$tokens = token_get_all($source);
...
Run Code Online (Sandbox Code Playgroud)

因此,需要获得这样的列表:

[0] => array('foo'),
[1] => array(array('foo'), 'bar')
Run Code Online (Sandbox Code Playgroud)

lon*_*day 5

而不是使用标记化器,使用反射.在这种情况下,使用ReflectionFunction:

function funcname ($foo, $bar) {

}

$f = new ReflectionFunction('funcname');
foreach ($f->getParameters() as $p) {
    echo $p->getName(), "\n";
}
Run Code Online (Sandbox Code Playgroud)

这输出

foo
bar
Run Code Online (Sandbox Code Playgroud)

您还可以使用此类和相关类(例如ReflectionParameter)来查找有关函数及其参数的更多信息,例如参数是否可选以及其默认值是什么.