您好,欢迎访问一九零五行业门户网

php reflection

1。用途:
扩展分析php程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。
reflection可以说是对php库函数:“classes/objects 类/对象函数”的一个扩展。
主要用在通过程序检测现有php程序内部关于类、方法等信息,并做出处理。
2。api概览:
class reflection { }
interface reflector { }
class reflectionexception extends exception { }
class reflectionfunction implements reflector { }
class reflectionparameter implements reflector { }
class reflectionmethod extends reflectionfunction { }
class reflectionclass implements reflector { }
class reflectionobject extends reflectionclass { }
class reflectionproperty implements reflector { }
class reflectionextension implements reflector { }
3。详细说明:(例子详见php手册)
①reflection类
②reflectionexception类
该类继承标准类,没特殊方法和属性。
③reflectionfunction类
④reflectionparameter类:
⑤reflectionclass类:
getmodifiers())进一步读取
    public bool isinstance(stdclass object)
    //测试传入的对象是否为该类的一个实例
    public stdclass newinstance(mixed* args)
    //创建该类实例
    public reflectionclass getparentclass()
    //取得父类
    public bool issubclassof(reflectionclass class)
    //测试传入的类是否为该类的父类
    public array getstaticproperties()
    //取得该类的所有静态属性
    public mixed getstaticpropertyvalue(string name [, mixed default])
    //取得该类的静态属性值,若private,则不可访问
    public void setstaticpropertyvalue(string name, mixed value)
    //设置该类的静态属性值,若private,则不可访问,有悖封装原则
    public array getdefaultproperties()
    //取得该类的属性信息,不含静态属性
    public bool isiterateable()
    public bool implementsinterface(string name)
    //测试是否实现了某个特定接口
    public reflectionextension getextension()
    public string getextensionname()
}
?>
⑥reflectionmethod类:
⑦reflectionproperty类:
⑧reflectionextension类
4。附:
其实从第二点api概览可以看出:接口挺好用的。
一方面reflector接口为reflection小系统提供了一个很好的接口命名规范,
每个实现他的类都须按他的规范,从外部看来,这个小系统api很统一。
另一方面由于很多类实现了reflector接口,
在这样的类层次结构中,若想实现多态是很容易的
其它类似信息

推荐信息