我需要知道函数接受多少参数(包括可选的args)。没有调用该函数而没有错误。就像我在调用函数之前可以检查is_callable
一样,以便不会出现php错误
例如,在javascript中,每个函数都有length
属性:
Math.sin.length == 1
Array.prototype.slice.length == 2
我知道,这将只返回声明的参数,但是不支持js语法中带有默认值的可选参数。
php 中有类似的东西吗? 在php 5.2+中工作就足够了。只考虑全局函数(不是方法)也是足够的 试图用0参数调用函数,然后使用1参数的Hackish解决方案非常气馁,导致函数调用成本可能非常高。
答案 0 :(得分:4)
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();