php获取函数参数长度

时间:2016-12-15 09:39:10

标签: php function arguments

我想知道你是否可以从外部范围获得 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'];

2 个答案:

答案 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