PHP反射(反射)使用实例
PHP反射是获取类、扩展、方法、函数、对象、参数、属性的详细信息。的reflectionclass类中获得类的相关信息,如获得属性、方法、文档注释,等等。
< PHP
类人{
*为了演示,我们正在设置这个私有
* /
私人_allowdynamicattributes美元= false;
类型= primary_autoincrement / * * /
受保护的$ id = 0;
类型= varchar长度= 255 / /零* * *
受保护的$名称;
类型=文本null
受保护的传记;
公共函数getID()
{
返回$;
}
公共功能的压缩文件SetID($ V)
{
$;
}
公共职能getName()
{
返回$这个名称;
}
公共职能setName($ V)
{
$;
}
公共功能getbiography()
{
这是传记;
}
公共功能setbiography($ V)
{
这篇传记;
}
}
派生类
ReflectionClass::出口('person);
$ R =新ReflectionClass('person);
获取所有属性
print_r($ R -> getProperties());
*获得指定的属性
* reflectionproperty::is_static
* reflectionproperty::is_public
* reflectionproperty::is_protected
* reflectionproperty::is_private
* /
print_r($ R -> getProperties(reflectionproperty::is_private));
获取/注释
print_r($ R -> getProperty('id')-> getdoccomment());
获取方法
print_r($ R -> getMethods());
的reflectionextension类用于获取扩展的相关信息
重=新reflectionextension('reflection);
print_r(($重新> getClasses) / /);所有类扩展
print_r(($重> getclassnames)); / /扩展的类的名称
美元reflectionextension('mysql DOM =新的);
print_r(($ DOM -> getconstants)); / /不断扩大
print_r(($ DOM -> getdependencies)); / /这个扩展的依赖
print_r(($ DOM -> getfunctions)); / /扩展方法
print_r($ DOM -> getinientries)(INI); / /扩展信息
print_r(($ DOM -> getName)) / /扩展名;
print_r(($ DOM ->获取版本)); / /扩展版
print_r(($ DOM ->信息)); / /扩展信息
print_r(($ DOM ->持久)); / /持久扩张
print_r(($ DOM ->是暂时的)); / /是一个临时的延伸
reflectionfunction类用户功能相关的信息
RF =新reflectionfunction美元('array_merge);
foreach($射频->得到相机的参数()$项){
回波$项。php_eol;
}
反射类的用户相关信息的获得方法
类人{
公开名称;
*取得人的姓名
* /
公共职能getName()
{
返回$这个名称;
}
公共职能setName($ V)
{
$;
}
}
$ RM =新的反射波法('person ','getname);
print_r($ RM ->为());
print_r($ RM -> getdoccomment());
的reflectionobject类用于获取对象的相关信息
类人{
公开名称;
公共功能__construct($name)
{
这个名字;
}
公共职能getName()
{
返回$这个名称;
}
公共职能setName($ V)
{
$;
}
}
美元=新的人(A);
RO =新reflectionobject美元(美元);
print_r($ RO -> getMethods());
reflectionparameter获取关于一个函数或方法的参数信息。
类人{
公开名称;
公共功能__construct($name)
{
这个名字;
}
公共职能getName()
{
返回$这个名称;
}
公共职能setName($ V)
{
$;
}
}
P =新reflectionparameter(阵列('person ','setname '),0);
print_r(P > getposition()); / / 0
print_r(P > getName()); / / V
reflectionproperty获取关于该类的属性信息。
类人{
测试
公开名称;
公共功能__construct($name)
{
这个名字;
}
公共职能getName()
{
返回$这个名称;
}
公共职能setName($ V)
{
$;
}
}
P =新reflectionproperty('person,'name');
print_r(P > getdoccomment());