PHP面向对象(OOP)的反射API
qingheluo2016-12-16清河洛281
PHP中的类和对象函数并没有告诉我们类内部的所有一切,而只是报告了它们的公共成员要充分了解一个类,需要知道其私有成员和保护成员,还要知道其方法所期望的参数对此,使用反射API,在此就ReflectionClass类简单讲解一下(还有很多其他的类)1.获得一个类的反射API转储$rc =new ReflectionClass(String $claaaName);
2.ReflectionClass类中的静态方法export(String $claaaName),导出(打印)一个类的信息ReflectionClass::export('DateTime');
3.获取类...
PHP中的类和对象函数并没有告诉我们类内部的所有一切,而只是报告了它们的公共成员
要充分了解一个类,需要知道其私有成员和保护成员,还要知道其方法所期望的参数
对此,使用反射API,在此就ReflectionClass类简单讲解一下(还有很多其他的类)
1.获得一个类的反射API转储
$rc =new ReflectionClass(String $claaaName);
2.ReflectionClass类中的静态方法export(String $claaaName),导出(打印)一个类的信息
ReflectionClass::export('DateTime');
3.获取类中的某个或某些元素的方法
$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)
返回一个类中某个方法的信息关联数组
键值'name'值为方法名,键值'class'值为该方法所属类的名称
$rc->getMethods():返回类中方法信息组成的数组
$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对象字符串的表示形式