Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中获取外部函数参数的数量_Php - Fatal编程技术网

在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