获取特定(用户定义的)PHP函数的参数(列表)

时间:2014-01-11 15:08:30

标签: php function user-defined-functions

有没有办法在PHP中实现这个目标?

echo list_args('a_user_defined_function_name_here_such_as_say_hello');

并输出类似

的内容
$first_name
$last_name

用于定义为;

的函数
function say_hello($first_name, $last_name){
     echo "Hello $first_name $last_name";
}

所以基本上,我正在寻找的是一个函数解释器或类似的东西......&如果那件事可以进入基于php doc的评论提取器。那会更好..

2 个答案:

答案 0 :(得分:3)

您可以使用ReflectionFunction类来执行此操作:

function list_args($name) {
    $list = "";
    $ref = new ReflectionFunction($name);
    foreach ($ref->getParameters() as $param) {
        $list .= '$' . $param->getName() . "\n"; 
    }
    return $list;
}

答案 1 :(得分:1)

您可以尝试ReflectionFunction

function list_args($function) {
    $func = new ReflectionFunction($function);
    $res = array();
    foreach ($func->getParameters() as $argument) {
        $res[] = '$' . $argument->name;   
    }
    return $res;
}
print_r(list_args('say_hello')); // outputs Array ( [0] => $first_name [1] => $last_name )