获取函数的参数名称

php
2022-08-30 11:27:46

在 PHP 中考虑以下函数:

function test($name, $age) {}

我需要以某种方式提取参数名称(用于自动生成自定义文档),以便我可以执行如下操作:

get_func_argNames('test');

它会返回:

Array['name','age']

这在PHP中甚至可能吗?


答案 1

您可以使用反射

function get_func_argNames($funcName) {
    $f = new ReflectionFunction($funcName);
    $result = array();
    foreach ($f->getParameters() as $param) {
        $result[] = $param->name;   
    }
    return $result;
}

print_r(get_func_argNames('get_func_argNames'));


//output
Array
(
    [0] => funcName
)

答案 2

现在是2019年,没有人这么说?

只需使用 :get_defined_vars()

class Foo {
  public function bar($a, $b) {
    var_dump(get_defined_vars());
  }
}

(new Foo)->bar('first', 'second');

结果:

array(2) {
  ["a"]=>
  string(5) "first"
  ["b"]=>
  string(6) "second"
}

推荐