是否有可能在 PHP 中获得匿名函数预期的参数数量?我知道 ReflectionMethod,但这似乎只有在该方法是在类上定义的情况下才有效。在我的例子中,匿名函数要么有 1 个参数,要么有 2 个参数。我宁愿正确地进行检查,而不是将第一个调用包装在 try/catch 中,如果第一个参数失败,则使用 2 个参数再次尝试。
问问题
596 次
1 回答
7
试试这个:
// returns the arity of the given closure
function arity($lambda) {
$r = new ReflectionObject($lambda);
$m = $r->getMethod('__invoke');
return $m->getNumberOfParameters();
}
几个月前,我在这里更详细地写了这个:http: //onehackoranother.com/logfile/2009/05/finding-the-arity-of-a-closure-in-php-53
于 2010-01-31T23:11:57.497 回答