【问题标题】:PHP get a defined function's argumentsPHP 获取已定义函数的参数
【发布时间】:2014-09-23 17:29:43
【问题描述】:

我正在为 PHP 库构建文档页面。我从 retrieving an array of defined functions from a PHP file 开始,它在目录遍历循环中运行良好。

现在我正在尝试检索该函数中定义的参数。在这个例子中......

function askQuestion(&$person, $question) {
  if(!$person['nice']){
    return false;
  }
  else {
    return 'Go to college';
  }
}

我想检索以下字符串:&$person, $question 还是每个参数的数组?最好,我想知道它是否是像&$person 这样的引用变量。

我找到了func_get_arg(s) 文档,但据我了解,它旨在检索您从中调用func_get_args() 的函数的参数,而不是实际的参数变量名称。就研究而言,我对 PHP 还不够基础,还不知道我应该使用什么行话来在线找到这个答案。有什么想法吗?

【问题讨论】:

  • 您可能想使用标记器来执行此操作....但是如果您在代码中使用了 docblocks,您可以注释所有这些函数,以便 phpdocumentor 构建您的代码文档
  • 出于兴趣,您为什么要通过引用传递 $person?
  • 我没有指定;这是一个假功能。正如它所写的那样,没有理由通过引用传递 $person。

标签: php arrays directory arguments


【解决方案1】:

看看ReflectionFunction类:

$refFunc = new ReflectionFunction('askQuestion');

$params = array();
foreach($refFunc->getParameters() as $param){
    $params[] = $param->__toString();
}

print_r($params);

输出:

Array
(
    [0] => Parameter #0 [ <required> &$person ]
    [1] => Parameter #1 [ <required> $question ]
)

在线演示here.

【讨论】:

  • 说真的,完美。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多