龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP的反射类ReflectionClass、ReflectionMethod使用实例(2)

时间:2014-08-06 11:49来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: getMethods() 来获取到类的所有methods。 hasMethod(string) 是否存在某个方法 getMethod(string) 获取方法 4)执行类的方法: 复制代码 代码如下

复制代码 代码如下:

getMethods()       来获取到类的所有methods。
hasMethod(string)  是否存在某个方法
getMethod(string)  获取方法

4)执行类的方法:

复制代码 代码如下:

$instance->getName(); // 执行Person 里的方法getName
// 或者:
$method = $class->getmethod('getName'); // 获取Person 类中的getName方法
$method->invoke($instance);    // 执行getName 方法
// 或者:
$method = $class->getmethod('setName'); // 获取Person 类中的setName方法
$method->invokeArgs($instance, array('snsgou.com'));

二、通过ReflectionMethod,我们可以得到Person类的某个方法的信息:

1.是否“public”、“protected”、“private” 、“static”类型
2.方法的参数列表
3.方法的参数个数
4.反调用类的方法

复制代码 代码如下:

// 执行detail方法
$method = new ReflectionMethod('Person', 'test');

if ($method->isPublic() && !$method->isStatic()) {
 echo 'Action is right';
}
echo $method->getNumberOfParameters(); // 参数个数
echo $method->getParameters(); // 参数对象数组

精彩图集

赞助商链接