在php中获取函数参数OUTSITE的数量

时间:2011-02-15 18:34:48

标签: php

我需要知道函数接受多少参数(包括可选的args)。没有调用该函数而没有错误。就像我在调用函数之前可以检查is_callable一样,以便不会出现php错误 例如,在javascript中,每个函数都有length属性:

Math.sin.length == 1
Array.prototype.slice.length == 2

我知道,这将只返回声明的参数,但是不支持js语法中带有默认值的可选参数。

php 中有类似的东西吗? 在php 5.2+中工作就足够了。只考虑全局函数(不是方法)也是足够的 试图用0参数调用函数,然后使用1参数的Hackish解决方案非常气馁,导致函数调用成本可能非常高。

1 个答案:

答案 0 :(得分:4)

使用ReflectionFunction

function a($b, $c = 1) {
    echo $b, $c;
}

$rf = new ReflectionFunction('a');
echo $rf->getNumberOfParameters();

在PHP 5.3中,ReflectionFunction支持闭包:

$a = function($b, $c = 1) {
    echo $b, $c;
};

$rf = new ReflectionFunction($a);
echo $rf->getNumberOfParameters();