目录

PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。

Reflection类

这是一个静态类、静态方法:

  • Reflection::export — Exports

  • Reflection::getModifierNames — 获取修饰符的名称

    就是将其他比如ReflectionMethod中getModifiers获取到的修饰符标识转换成字符标识public、private等

ReflectionClass类

返回了一个类的有关信息。

  • 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::getReflectionConstant — Gets a ReflectionClassConstant for a class’s constant
  • ReflectionClass::getReflectionConstants — Gets class constants
  • 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::isAnonymous — 检查类是否是匿名类
  • ReflectionClass::isCloneable — 返回了一个类是否可复制
  • ReflectionClass::isFinal — 检查类是否声明为 final
  • ReflectionClass::isInstance — 检查类的实例
  • ReflectionClass::isInstantiable — 检查类是否可实例化
  • ReflectionClass::isInterface — 检查类是否是一个接口(interface)
  • ReflectionClass::isInternal — 检查类是否由扩展或核心在内部定义
  • ReflectionClass::isIterable — Check whether this class is iterable
  • ReflectionClass::isIterateable — 检查是否可迭代(iterateable)
  • ReflectionClass::isSubclassOf — 检查是否为一个子类
  • ReflectionClass::isTrait — 返回了是否为一个 trait
  • ReflectionClass::isUserDefined — 检查是否由用户定义的
  • ReflectionClass::newInstance — 从指定的参数创建一个新的类实例
  • ReflectionClass::newInstanceArgs — 从给出的参数创建一个新的类实例。
  • ReflectionClass::newInstanceWithoutConstructor — 创建一个新的类实例而不调用它的构造函数
  • ReflectionClass::setStaticPropertyValue — 设置静态属性的值
  • ReflectionClass::__toString — 返回 ReflectionClass 对象字符串的表示形式。

ReflectionClassConstant类

返回关于类常量的信息。

  • ReflectionClassConstant::__construct -构造一个ReflectionClassConstant

  • ReflectionClassConstant::export - 导出

  • ReflectionClassConstant::getDeclaringClass -获取声明类

  • ReflectionClassConstant::getDocComment -获取文档注释

  • ReflectionClassConstant::getModifiers -获取类常量修饰符

  • ReflectionClassConstant::getName -获取常量的名称

  • ReflectionClassConstant::getValue -获取值

  • ReflectionClassConstant::isPrivate -检查类常量是否为private

  • ReflectionClassConstant::isProtected -检查类常量是否被保护

  • ReflectionClassConstant::isPublic -检查类常量是否为public

  • ReflectionClassConstant::__toString -返回ReflectionClassConstant对象的字符串表示形式

ReflectionMethod类

返回了一个方法的有关信息。

  • ReflectionMethod::__construct — ReflectionMethod 的构造函数
  • ReflectionMethod::export — 输出一个回调方法
  • ReflectionMethod::getClosure — 返回一个动态建立的方法调用接口,译者注:可以使用这个返回值直接调用非公开方法。
  • ReflectionMethod::getDeclaringClass — 获取被反射的方法所在类的反射实例
  • ReflectionMethod::getModifiers — 获取方法的修饰符
  • ReflectionMethod::getPrototype — 返回方法原型 (如果存在)
  • ReflectionMethod::invoke — Invoke
  • ReflectionMethod::invokeArgs — 带参数执行
  • ReflectionMethod::isAbstract — 判断方法是否是抽象方法
  • ReflectionMethod::isConstructor — 判断方法是否是构造方法
  • ReflectionMethod::isDestructor — 判断方法是否是析构方法
  • ReflectionMethod::isFinal — 判断方法是否定义 final
  • ReflectionMethod::isPrivate — 判断方法是否是私有方法
  • ReflectionMethod::isProtected — 判断方法是否是保护方法 (protected)
  • ReflectionMethod::isPublic — 判断方法是否是公开方法
  • ReflectionMethod::isStatic — 判断方法是否是静态方法
  • ReflectionMethod::setAccessible — 设置方法是否访问
  • ReflectionMethod::__toString — 返回反射方法对象的字符串表达

ReflectionProperty类

返回了类的属性的相关信息。

  • ReflectionProperty:: __clone -克隆

  • ReflectionProperty::__construct—构造一个ReflectionProperty对象

  • ReflectionProperty::export - 导出

  • ReflectionProperty::getDeclaringClass -获取声明类

  • ReflectionProperty::getDefaultValue—返回为属性声明的默认值

  • ReflectionProperty::getDocComment -获取属性doc注释

  • ReflectionProperty::getModifiers -获取属性修饰符

  • ReflectionProperty::getName -获取属性名

  • ReflectionProperty::getType -获取属性的类型

  • ReflectionProperty::getValue -获取值

  • ReflectionProperty::hasDefaultValue -检查属性是否声明了默认值

  • ReflectionProperty::hasType -检查属性是否有类型

  • ReflectionProperty::isDefault -检查property是否为默认属性

  • ReflectionProperty::isInitialized -检查一个属性是否已初始化

  • ReflectionProperty::isPrivate -检查属性是否为私有

  • ReflectionProperty::isProtected -检查属性是否被保护

  • ReflectionProperty::isPublic -检查属性是否为公共属性

  • ReflectionProperty::isStatic -检查属性是否是静态的

  • ReflectionProperty::setAccessible -设置属性的可访问性

  • ReflectionProperty::setValue—设置属性值

  • ReflectionProperty::__toString - To string

ReflectionExtension类

返回了一个扩展(extension)的有关信息。

  • ReflectionExtension::__clone — Clones
  • ReflectionExtension::__construct — Constructs a ReflectionExtension
  • ReflectionExtension::export — 导出
  • ReflectionExtension::getClasses — 获取扩展中的类列表
  • ReflectionExtension::getClassNames — 获取类名称
  • ReflectionExtension::getConstants — 获取常量
  • ReflectionExtension::getDependencies — 获取依赖
  • ReflectionExtension::getFunctions — 获取扩展中的函数
  • ReflectionExtension::getINIEntries — 获取ini配置
  • ReflectionExtension::getName — 获取扩展名称
  • ReflectionExtension::getVersion — 获取扩展版本号
  • ReflectionExtension::info — 输出扩展信息
  • ReflectionExtension::isPersistent — 返回扩展是否持久化载入
  • ReflectionExtension::isTemporary — 返回扩展是否是临时载入
  • ReflectionExtension::__toString — To string

ReflectionFunctionAbstract 类

ReflectionFunction 的父类,详情请阅读它的描述。

  • ReflectionFunctionAbstract::__clone — 复制函数
  • ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope associated to the closure
  • ReflectionFunctionAbstract::getClosureThis — 返回本身的匿名函数
  • ReflectionFunctionAbstract::getDocComment — 获取注释内容
  • ReflectionFunctionAbstract::getEndLine — 获取结束行号
  • ReflectionFunctionAbstract::getExtension — 获取扩展信息
  • ReflectionFunctionAbstract::getExtensionName — 获取扩展名称
  • ReflectionFunctionAbstract::getFileName — 获取文件名称
  • ReflectionFunctionAbstract::getName — 获取函数名称
  • ReflectionFunctionAbstract::getNamespaceName — 获取命名空间
  • ReflectionFunctionAbstract::getNumberOfParameters — 获取参数数目
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — 获取必须输入参数个数
  • ReflectionFunctionAbstract::getParameters — 获取参数
  • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
  • ReflectionFunctionAbstract::getShortName — 获取函数短名称
  • ReflectionFunctionAbstract::getStartLine — 获取开始行号
  • ReflectionFunctionAbstract::getStaticVariables — 获取静态变量
  • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
  • ReflectionFunctionAbstract::inNamespace — 检查是否处于命名空间
  • ReflectionFunctionAbstract::isClosure — 检查是否是匿名函数
  • ReflectionFunctionAbstract::isDeprecated — 检查是否已经弃用
  • ReflectionFunctionAbstract::isGenerator — 判断函数是否是一个生成器函数
  • ReflectionFunctionAbstract::isInternal — 判断函数是否是内置函数
  • ReflectionFunctionAbstract::isUserDefined — 检查是否是用户定义
  • ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic
  • ReflectionFunctionAbstract::returnsReference — 检查是否返回参考信息
  • ReflectionFunctionAbstract::__toString — 字符串化

ReflectionFunction类

返回了一个函数的有关信息。

  • ReflectionFunction::__construct -构造一个ReflectionFunction对象

  • ReflectionFunction::export -导出功能

  • ReflectionFunction::getClosure —为函数返回一个动态创建的闭包

  • ReflectionFunction::invoke -调用函数

  • ReflectionFunction::invokeArgs -调用函数参数

  • ReflectionFunction::isDisabled -检查功能是否被禁用

  • ReflectionFunction::__toString - toString

ReflectionParameter类

取回了函数或方法参数的相关信息。

  • ReflectionParameter::allowsNull -检查是否允许为空

  • ReflectionParameter::canBePassedByValue—返回该参数是否可以通过value传递

  • ReflectionParameter:: __clone -克隆

  • ReflectionParameter:: __construct -构造

  • ReflectionParameter:export - 导出

  • ReflectionParameter::getClass — 获得类型提示类

  • ReflectionParameter::getDeclaringClass -获取声明类

  • ReflectionParameter::getDeclaringFunction -获取声明的函数

  • ReflectionParameter::getDefaultValue -获取默认参数值

  • ReflectionParameter::getDefaultValueConstantName -如果默认值为常量或null,返回默认值的常量名

  • ReflectionParameter::getName -获取参数名

  • ReflectionParameter::getPosition—获取参数位置

  • ReflectionParameter::getType -获取参数的类型

  • ReflectionParameter::hasType -检查parameter是否有类型

  • ReflectionParameter::isArray -检查parameter是否需要一个数组

  • ReflectionParameter::isCallable—返回参数是否必须可调用

  • ReflectionParameter:: isDefaultValueAvailable -检查是否有默认值。

  • ReflectionParameter::isDefaultValueConstant—返回该参数的默认值是否为常量

  • ReflectionParameter::isOptional -检查是否可选

  • ReflectionParameter::isPassedByReference—检查是否通过引用传递

  • ReflectionParameter::isVariadic -检查参数是否为variadic

  • ReflectionParameter::__toString - To string

ReflectionType 类

用于获取函数、类方法的参数或者返回值的类型。

  • ReflectionType::allowsNull—检查是否允许为空

  • ReflectionType:: isbuilt -检查是否为内置类型

  • ReflectionType::__toString - toString

ReflectionGenerator类

用于获取生成器的信息。 比如有yield的函数。

  • ReflectionGenerator::__construct -构造一个ReflectionGenerator对象

  • ReflectionGenerator::getExecutingFile -获取当前正在执行的生成器的文件名

  • ReflectionGenerator::getExecutingGenerator -获取正在执行的生成器对象

  • ReflectionGenerator::getExecutingLine -获取生成器当前执行的行

  • ReflectionGenerator::getFunction -获取生成器的函数名

  • ReflectionGenerator::getThis -获取生成器的$this值

  • ReflectionGenerator::getTrace -获取正在执行的生成器的跟踪信息

ReflectionException类