我想知道你是否可以从外部范围获得 php 函数参数的参数长度。
$test = function($one, $two) {
// this will work inside the scope of the function
$length = func_num_args();
};
// I would like to access it from outside the functions scope
$length = get_arg_count(test); // => 2
如果我var_dump(test)
我可以在properties
的封闭上看到一个属性,但我无法理解它。
有func_num_args(void)
,但只能在函数范围内工作。
我试过......
test->properties;
test->properties();
test::properties;
test::properties();
test['properties'];
答案 0 :(得分:3)
您希望reflect使用该功能:
$ref = new ReflectionFunction($test);
echo $ref->getNumberOfParameters();
答案 1 :(得分:1)
代码:
$test = function($one, $two) {
// this will work inside the scope of the function
$length = func_num_args();
var_dump($length); // => 2
};
var_dump($test);
结果:
Press ENTER or type command to continue
object(Closure)#1 (1) {
["parameter"]=>
array(2) {
["$one"]=>
string(10) "<required>"
["$two"]=>
string(10) "<required>"
}
}
如果返回函数参数长度,您可以尝试ReflectionFunction