如何从PHP下的另一个函数获取方法的参数列表?

时间:2013-06-18 06:42:22

标签: php

如果我有这样的课程:

class A {
    public function method1($arg1, $arg2){}
}

现在,我需要做这样的事情:

/**
 * @return array The list of arguemnt names
 */
function getMethodArgList(){
    return get_method_arg_list(A, method1);
}

那么,我怎么能实现函数getMethodArgList()?任何人都可以帮助我?

1 个答案:

答案 0 :(得分:4)

我不确定是否收到了问题,但ReflectionClass和ReflectionMethod可能正是您要找的。

e.g。

<?php
var_dump(getMethodArgList());

class A {
    public function method1($arg1, $arg2){}
}

function getMethodArgList() {
    $rc = new ReflectionClass('A');
    $rm = $rc->getMethod('method1');
    return $rm->getParameters();
}

打印

array(2) {
  [0] =>
  class ReflectionParameter#3 (1) {
    public $name =>
    string(4) "arg1"
  }
  [1] =>
  class ReflectionParameter#4 (1) {
    public $name =>
    string(4) "arg2"
  }
}

仅获取您可以使用的名称

return array_map(function($e) { return $e->getName(); }, $rm->getParameters());

而不是return $rm->getParameters();