[php]使用ReflectionClass类

今天使用了获取类中常量的方法

$r = new ReflectionClass($this);
$ret = $r->getConstants();

其中$this参数为一个类对象.
手册中还有很多这个类的其他方法,简单好用

ReflectionClass implements Reflector {
/* 常量 */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* 属性 */
public $name ;
/* 方法 */
public __construct ( mixed $argument )
public static string export ( mixed $argument [, bool $return = false ] )
public mixed getConstant ( string $name )
public array getConstants ( void )
public ReflectionMethod getConstructor ( void )
public array getDefaultProperties ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public array getInterfaceNames ( void )
public array getInterfaces ( void )
public ReflectionMethod getMethod ( string $name )
public array getMethods ([ int $filter ] )
public int getModifiers ( void )
public string getName ( void )
public string getNamespaceName ( void )
public object getParentClass ( void )
public array getProperties ([ int $filter ] )
public ReflectionProperty getProperty ( string $name )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticProperties ( void )
public mixed getStaticPropertyValue ( string $name [, mixed &$def_value ] )
public array getTraitAliases ( void )
public array getTraitNames ( void )
public array getTraits ( void )
public bool hasConstant ( string $name )
public bool hasMethod ( string $name )
public bool hasProperty ( string $name )
public bool implementsInterface ( string $interface )
public bool inNamespace ( void )
public bool isAbstract ( void )
public bool isCloneable ( void )
public bool isFinal ( void )
public bool isInstance ( object $object )
public bool isInstantiable ( void )
public bool isInterface ( void )
public bool isInternal ( void )
public bool isIterateable ( void )
public bool isSubclassOf ( string $class )
public bool isTrait ( void )
public bool isUserDefined ( void )
public object newInstance ( mixed $args [, mixed $... ] )
public object newInstanceArgs ([ array $args ] )
public object newInstanceWithoutConstructor ( void )
public void setStaticPropertyValue ( string $name , string $value )
public string __toString ( void )
}

其他的方法为:
• ReflectionClass::__construct — 构造一个 ReflectionClass 类
• ReflectionClass::export — 导出一个类
• ReflectionClass::getConstant — 获取定义过的一个常量
• ReflectionClass::getConstants — 获取一组常量
• ReflectionClass::getConstructor — 获取类的构造函数
• ReflectionClass::getDefaultProperties — 获取默认属性
• ReflectionClass::getDocComment — 获取文档注释
• ReflectionClass::getEndLine — 获取最后一行的行数
• ReflectionClass::getExtension — 根据已定义的类获取所在扩展的 ReflectionExtension 对象
• ReflectionClass::getExtensionName — 获取定义的类所在的扩展的名称
• ReflectionClass::getFileName — 获取定义类的文件名
• ReflectionClass::getInterfaceNames — 获取接口(interface)名称
• ReflectionClass::getInterfaces — 获取接口
• ReflectionClass::getMethod — 获取一个类方法的 ReflectionMethod。
• ReflectionClass::getMethods — 获取方法的数组
• ReflectionClass::getModifiers — 获取修饰符
• ReflectionClass::getName — 获取类名
• ReflectionClass::getNamespaceName — 获取命名空间的名称
• ReflectionClass::getParentClass — 获取父类
• ReflectionClass::getProperties — 获取一组属性
• ReflectionClass::getProperty — 获取类的一个属性的 ReflectionProperty
• ReflectionClass::getShortName — 获取短名
• ReflectionClass::getStartLine — 获取起始行号
• ReflectionClass::getStaticProperties — 获取静态(static)属性
• ReflectionClass::getStaticPropertyValue — 获取静态(static)属性的值
• ReflectionClass::getTraitAliases — 返回 trait 别名的一个数组
• ReflectionClass::getTraitNames — 返回这个类所使用 traits 的名称的数组
• ReflectionClass::getTraits — 返回这个类所使用的 traits 数组
• ReflectionClass::hasConstant — 检查常量是否已经定义
• ReflectionClass::hasMethod — 检查方法是否已定义
• ReflectionClass::hasProperty — 检查属性是否已定义
• ReflectionClass::implementsInterface — 接口的实现
• ReflectionClass::inNamespace — 检查是否位于命名空间中
• ReflectionClass::isAbstract — 检查类是否是抽象类(abstract)
• ReflectionClass::isCloneable — 返回了一个类是否可复制
• ReflectionClass::isFinal — 检查类是否声明为 final
• ReflectionClass::isInstance — 检查类的实例
• ReflectionClass::isInstantiable — 检查类是否可实例化
• ReflectionClass::isInterface — 检查类是否是一个接口(interface)
• ReflectionClass::isInternal — 检查类是否由扩展或核心在内部定义
• ReflectionClass::isIterateable — 检查是否可迭代(iterateable)
• ReflectionClass::isSubclassOf — 检查是否为一个子类
• ReflectionClass::isTrait — 返回了是否为一个 trait
• ReflectionClass::isUserDefined — 检查是否由用户定义的
• ReflectionClass::newInstance — 从指定的参数创建一个新的类实例
• ReflectionClass::newInstanceArgs — 从给出的参数创建一个新的类实例。
• ReflectionClass::newInstanceWithoutConstructor — 创建一个新的类实例而不调用它的构造函数
• ReflectionClass::setStaticPropertyValue — 设置静态属性的值
• ReflectionClass::__toString — 返回 ReflectionClass 对象字符串的表示形式。

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*