PHP-请问下 PHP反射 能否获取的到 类中某一个方法定义的参数么?

发布于 2017-02-03 15:51:48 字数 122 浏览 1144 评论 2

请问下 PHP反射 能否获取的到 类中某一个方法定义的参数么? 比如

class A {
function b($m,$n)
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虐人心 2017-08-22 00:42:47

ReflectionParameter就是描述对于函数或者方法的参数信息的http://cn.php.net/manual/en/class.reflectionparameter.php
first create an instance of the ReflectionFunction or ReflectionMethod classes and then use their ReflectionFunctionAbstract::getParameters() method to retrieve an array of parameters.

浮生未歇 2017-05-04 15:11:01

用php反射类ReflectionClass和get_class_methods,例子:

<?php
class Test {
<coding-2 lang="other">
public $name = '';
function __construct( $name) {
return $this->name = $name;
}

function getUserInfo($uid) {
return $uid;
}

function setUserInfo($name, $age, $sex='0') {
return true;
}
}

class Method {
const CLASS_NAME = 'Test';
//获取类中所有的方法
public static function getMethods() {
$methods = get_class_methods(self::CLASS_NAME);
global $FUNC;
if(is_array($FUNC) && !empty($FUNC)) {
foreach($FUNC as $fun) {
unset($methods[array_search($fun, $methods)]);
}
}
return $methods;
}

//获取类中方法的参数和参数的默认值
public function getParam($method) {
$reflector = new ReflectionClass(self::CLASS_NAME);
$parameters = $reflector->getMethod($method)->getParameters();
$info = array();
foreach($parameters as $key=>$param) {
$info[$key]['name'] = $param->getName();//获取方法的参数
$info[$key]['value'] = ($param->isDefaultValueAvailable())?$param->getDefaultValue():'';//获取默认值
}
return $info;

}
}
?>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文