这是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()只能在一个对我没有帮助的函数中调用。
有什么想法吗?
答案 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();