PHP-请问下 PHP反射 能否获取的到 类中某一个方法定义的参数么?
请问下 PHP反射 能否获取的到 类中某一个方法定义的参数么? 比如
class A {
function b($m,$n)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
请问下 PHP反射 能否获取的到 类中某一个方法定义的参数么? 比如
class A {
function b($m,$n)
}
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
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.
用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;
}
}
?>