【问题标题】:getting the arguments (list) of a specific (user defined ) PHP function获取特定(用户定义的)PHP函数的参数(列表)
【发布时间】:2014-01-11 15:08:30
【问题描述】:

有没有办法在 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 的评论提取器。那会更好..

【问题讨论】:

标签: php function user-defined-functions


【解决方案1】:

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

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

【讨论】:

  • 谢谢蒂姆.. 确实做到了...我在us2.php.net/manual/en/reflection.examples.php 页面,在那里我看到了更多选择...但是他们根据shell 调用获得了示例。如何在 PHP 页面中制作像 $ php --rf strlen 这样的作品... 5.3+
【解决方案2】:

你可以试试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 )

【讨论】:

    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多