首页 > php学习 > php基础知识 > PHP面向对象(OOP)的反射API
2016
12-16

PHP面向对象(OOP)的反射API

PHP5的类和对象函数并没有告诉我们类内部的所有一切,而只是报告了它们的公共成员。要充分了解一个类,需要知道其私有成员和保护成员,还要知道其方法所期望的参数。对此,使用反射API。

在此就ReflectionClass类简单讲解一下(还有很多其他的类)。

1.获得一个类的反射API转储

$rc =new ReflectionClass(String $claaaName);

2.ReflectionClass类中的静态方法export(String $claaaName),导出(打印)一个类的信息

如:获得PHP内置的类库的信息:ReflectionClass::export('DateTime');

3.获取类中的某个或某些元素的方法

$_rc = new ReflectionClass( 'Computer' );

$rc->getConstant(Srting $name):返回定义过的一个常量的值,$name为常量的名称

$rc->getConstants():返回类中常量组成的数组

$rc->getConstructor():返回类的构造函数,不存在构造函数时返回 NULL

$rc->getDefaultProperties():返回默认属性组成的数组

$rc->getDocComment():返回当前脚本文档注释,只识别/**解释的一行多多行文本*/(第一个斜杠后两个*)这样的注释,其他的注释值返回bool值false。

$rc->getStartLine():返回编写定义该类时该类的起始行号

$rc->getEndLine():返回编写定义该类时该类的最后一行的行数

$rc->getExtension():返回系统自带的类所在扩展的对象(如DateTime类属于date扩展对象),自定义的类返回NULL。

$rc->getExtensionName():返回系统自带的类所在扩展的对象名称字符串,自定义的类返回ture。

$rc->getFileName():返回定义类的文件名,如果这个类是在PHP核心或PHP扩展中定义的,则返回FALSE。

$rc->getInterfaceNames():返回接口名称

$rc->getInterfaces():返回类引用的接口组成的数组

$rc->getMethod(String $methodName):返回一个类中$methodName方法的信息关联数组,键值'name'值为方法名,键值'class'值为该方法所属类的名称

$rc->getMethods():返回类中方法信息组成的数组。键值'name'值为方法名,键值'class'值为该方法所属类的名称

$rc->getName():返回类名

$rc->getParentClass():返回父类(不是类名)

$rc->getProperties():返回一组属性数组

$rc->getProperty():返回一个属性的信息数组,键值'name'值为属性名(不加$的变量名),键值'class'值为该方法所属类的名称

$rc->getStaticProperties():返回静态属性的关联数组,属性名(不加$的变量名)为键,属性值为值。

$rc->getStaticPropertyValue():返回静态属性的值

$rc->hasConstant(string $name):检查常量是否已经定义

$rc->hasMethod(string $name):检查方法是否已定义

$rc->hasProperty(string $name):检查属性是否已定义

$rc->implementsInterface(string $interface):检查是否实现了一个接口

$rc->isAbstract():检查类是否是抽象类(abstract)

$rc->isCloneable():返回了一个类是否可复制

$rc->isFinal():检查类是否声明为 final

$rc->isInstance(object $object):检查对象是否是这个类的实例

$rc->isInstantiable():检查类是否可实例化

$rc->isInterface():检查类是否是一个接口(interface)

$rc->isInternal():检查类是否由扩展或核心在内部定义

$rc->isSubclassOf():检查是否为一个子类

$rc->isUserDefined():检查是否由用户定义的

$rc->setStaticPropertyValue():设置静态属性的值

$rc->__toString():返回ReflectionClass对象字符串的表示形式。

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。