反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP 语言。php 反射api 由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互。借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new 创建),调用一个方法(也不同于常规调用),传递参数,动态调用类的静态方法。
反射api 是php 内建的oop 技术扩展,包括一些类,异常和接口,综合使用他们可用来帮助我们分析其它类,接口,方法,属性,方法和扩展。这些oop 扩展被称为反射,位于php 源码/ext/reflection目录下。可以使用反射api 自省反射api 本身(这可能就是反射最初的意思,自己“看”自己):
这篇文章主要介绍了PHP类的反射用法,实例讲述了反射类的常用操作,具有一定的参考借鉴价值,需要的朋友可以参考下
本文实例讲述了PHP类的反射用法。分享给大家供大家参考。具体实现方法如下:
该例实现对于每个频道获取相应的类来执行相应的操作。具体如下:
代码如下:foreach($this->chs as $ch) {
$className = $this->chsMap[$ch];
if($className) { // 如果是合法的类名
// 获取反射类
$class = new ReflectionClass($className);
// 获取类的方法
$recd = $class->getmethod('exeRecd');
// 生成类的实例
$instance = $class->newInstance($this->qq, $this->ip);
// 执行方法
$result[$ch] = $recd->invoke($instance);
}
}