PHP:获取函数所需的参数数量

时间:2011-10-14 23:54:58

标签: php class reflection

这是PHP pass in $this to function outside class

的扩展问题

我相信这就是我正在寻找的东西,但它在python而不是php:Programmatically determining amount of parameters a function requires - Python

假设我有这样的功能:

function client_func($cls, $arg){ }

当我准备调用此函数时,我可能会在伪代码中执行类似的操作:

if function's first parameter equals '$cls', then call client_func(instanceof class, $arg)
else call client_func($arg)

基本上,有没有办法预测函数,看看在调用函数之前需要什么参数值。

我想这就像debug_backtrace,但反过来。

func_get_args()只能在一个对我没有帮助的函数中调用。

有什么想法吗?

2 个答案:

答案 0 :(得分:16)

在您的情况下使用Reflection,尤其是ReflectionFunction

$fct = new ReflectionFunction('client_func');
echo $fct->getNumberOfRequiredParameters();

据我所知,你会发现getParameters()也很有用

答案 1 :(得分:1)

只有通过转到http://us3.php.net/manual/en/book.reflection.php

进行反思
class foo {
 function bar ($arg1, $arg2) {
   // ...
 }
}

$method = new ReflectionMethod('foo', 'bar');
$num = $method->getNumberOfParameters();