PHP函数参考31-Reflection反射
目录
- Reflection类
- ReflectionClass类
- ReflectionClassConstant类
- ReflectionMethod类
- ReflectionProperty类
- ReflectionExtension类
- ReflectionFunctionAbstract 类
- ReflectionFunction类
- ReflectionParameter类
- ReflectionType 类
- ReflectionGenerator类
- ReflectionException类
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 -获取正在执行的生成器的跟踪信息