如果我有这样的课程:
class A {
public function method1($arg1, $arg2){}
}
现在,我需要做这样的事情:
/**
* @return array The list of arguemnt names
*/
function getMethodArgList(){
return get_method_arg_list(A, method1);
}
那么,我怎么能实现函数getMethodArgList()?任何人都可以帮助我?
答案 0 :(得分:4)
我不确定是否收到了问题,但ReflectionClass和ReflectionMethod可能正是您要找的。 p>
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();