在php中获取外部函数参数的数量
我需要知道函数接受多少参数(包括可选参数)。不调用该函数,也不获取错误。在调用函数之前,我可以检查在php中获取外部函数参数的数量,php,Php,我需要知道函数接受多少参数(包括可选参数)。不调用该函数,也不获取错误。在调用函数之前,我可以检查是否可调用,以避免出现php错误。 例如,在javascript中,每个函数都有一个length属性: Math.sin.length == 1 Array.prototype.slice.length == 2 我知道,这将只返回声明的参数,但在js语法中不支持带有默认值的可选参数 php中有类似的东西吗? 使用PHP5.2+就足够了。只编写全局函数(而不是方法)也足够了。 黑客的解决方案,比如
是否可调用,以避免出现php错误。
例如,在javascript中,每个函数都有一个length
属性:
Math.sin.length == 1
Array.prototype.slice.length == 2
我知道,这将只返回声明的参数,但在js语法中不支持带有默认值的可选参数
php中有类似的东西吗?
使用PHP5.2+就足够了。只编写全局函数(而不是方法)也足够了。
黑客的解决方案,比如尝试用0个参数调用函数,然后用1个参数。。。非常不鼓励,因为函数调用成本可能非常高。使用:
在PHP 5.3中,ReflectionFunction
支持闭包:
$a = function($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();
出于某种原因,在我的主人php5.2.16中,这导致json_decode
的结果为0。所有详细信息:而json_decode
通常使用两个参数。在我的家用机器上的php5.3上,它工作正常,结果是3
。出于某种原因,在我的主机php5.2.16上,这导致json\u decode
的值为0。所有详细信息:而json\u decode
正常工作,有两个参数。在我家机器的php5.3上,它工作正常,结果是3
。