php反射api

更新时间:2023-05-28 04:50:43 阅读: 评论:0

PHP反射API
何谓反射API?和java的反射机制你一样,它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。
Reflection可以说是对php库函数:“Class/Objects类/对象函数”的一个扩展。
主要用在通过程序检测现有php程序内部关于类、方法等信息,并做出处理。
1、API概览:
class Reflection{}
interface Reflector{}
class ReflectionException extends Exception{}
class ReflectionFunction implements Reflector{}
class ReflectionParameter implements Reflector{}
class ReflectionMethod extends ReflectionFunction{}
class ReflectionClass implements Reflector{}
class ReflectionObject extends ReflectionClass{}
class ReflectionProperty implements Reflector{}
class ReflectionExtension implements Reflector{}
2。详细说明:
①Reflection类
<?php
class Reflection
{
public static mixed export(Reflector r[,bool return])
/
/导出一个类或方法的详细信息
public static array getModifierNames(int modifiers)
//取得修饰符的名字
}
?>
②ReflectionException类
该类继承标准类,没特殊方法和属性。
③ReflectionFunction类
<?php
class ReflectionFunction implements Reflector
{
final private__clone()
public object__construct(string name)
1
public string__toString()
public static string export()
//导出该函数的详细信息
public string getName()
//取得函数名
public bool isInternal()
//测试是否为系统内部函数
public bool isUrDefined()
/
/测试是否为用户自定义函数
public string getFileName()
//取得文件名,包括路径名
public int getStartLine()
//取得定义函数的起始行
public int getEndLine()
//取得定义函数的结束行
public string getDocComment()
//取得函数的注释
public array getStaticVariables()
//取得静态变量
public mixed invoke(mixed*args)
//调用该函数,通过参数列表传参数
public mixed invokeArgs(array args)
//调用该函数,通过数组传参数
public bool returnsReference()
//测试该函数是否返回引用
public ReflectionParameter[]getParameters() //取得该方法所需的参数,返回值为对象数组
public int getNumberOfParameters()
//取得该方法所需的参数个数
public int getNumberOfRequiredParameters()
点读机资料下载//取得该方法所需的参数个数
}
?>
④ReflectionParameter类:
<?php
class ReflectionParameter implements Reflector {
final private__clone()
public object__construct(string name)
public string__toString()
英国初中留学申请public static string export()
//导出该参数的详细信息
public string getName()
2
mes系统是什么意思//取得参数名
public bool isPasdByReference()
//测试该参数是否通过引用传递参数
public ReflectionClass getClass()
//若该参数为对象,返回该对象的类名
public bool isArray()
//测试该参数是否为数组类型
public bool allowsNull()
//测试该参数是否允许为空
public bool isOptional()
/
/测试该参数是否为可选的,当有默认参数时可选public bool isDefaultValueAvailable()
//测试该参数是否为默认参数
public mixed getDefaultValue()
//取得该参数的默认值
}
男孩子英文名字?>
⑤ReflectionClass类:
<?php
class ReflectionClass implements Reflector {
final private__clone()
public object__construct(string name)
public string__toString()
public static string export()
//导出该类的详细信息
public string getName()
//取得类名或接口名
谷歌翻译下载public bool isInternal()
功夫梦片尾曲tranny//测试该类是否为系统内部类
public bool isUrDefined()
//测试该类是否为用户自定义类
public bool isInstantiable()
//测试该类是否被实例化过
public bool hasConstant(string name)
//测试该类是否有特定的常量
public bool hasMethod(string name)
//测试该类是否有特定的方法
public bool hasProperty(string name)
//测试该类是否有特定的属性
public string getFileName()
//取得定义该类的文件名,包括路径名
public int getStartLine()
3
//取得定义该类的开始行
public int getEndLine()
//取得定义该类的结束行
public string getDocComment()
jim jones//取得该类的注释
public ReflectionMethod getConstructor()
//取得该类的构造函数信息
public ReflectionMethod getMethod(string name)
//取得该类的某个特定的方法信息
public ReflectionMethod[]getMethods()
//取得该类的所有的方法信息
public ReflectionProperty getProperty(string name)
/
/取得某个特定的属性信息
public ReflectionProperty[]getProperties()
//取得该类的所有属性信息
public array getConstants()
//取得该类所有常量信息
public mixed getConstant(string name)
//取得该类特定常量信息
public ReflectionClass[]getInterfaces()
//取得接口类信息
public bool isInterface()
//测试该类是否为接口
public bool isAbstract()
//测试该类是否为抽象类
public bool isFinal()
//测试该类是否声明为final
public int getModifiers()
//取得该类的修饰符,返回值类型可能是个资源类型
//通过Reflection::getModifierNames($class->getModifiers())进一步读取public bool isInstance(stdclass object)
//测试传入的对象是否为该类的一个实例
public stdclass newInstance(mixed*args)
//创建该类实例
public ReflectionClass getParentClass()
//取得父类
public bool isSubclassOf(ReflectionClass class)
//测试传入的类是否为该类的父类
public array getStaticProperties()
//取得该类的所有静态属性
public mixed getStaticPropertyValue(string name[,mixed default])
//取得该类的静态属性值,若private,则不可访问
public void tStaticPropertyValue(string name,mixed value)
//设置该类的静态属性值,若private,则不可访问,有悖封装原则
短发弄什么发型好看4
public array getDefaultProperties()
/
反义疑问句/取得该类的属性信息,不含静态属性
public bool isIterateable()
public bool implementsInterface(string name)
//测试是否实现了某个特定接口
public ReflectionExtension getExtension()
public string getExtensionName()
}
?>
⑥ReflectionMethod类:
<?php
class ReflectionMethod extends ReflectionFunction
{
public__construct(mixed class,string name)
public string__toString()
public static string export()
//导出该方法的信息
public mixed invoke(stdclass object,mixed*args)
//调用该方法
public mixed invokeArgs(stdclass object,array args) //调用该方法,传多参数
public bool isFinal()
//测试该方法是否为final
public bool isAbstract()
/
/测试该方法是否为abstract
public bool isPublic()
//测试该方法是否为public
public bool isPrivate()
//测试该方法是否为private
public bool isProtected()
//测试该方法是否为protected
public bool isStatic()
//测试该方法是否为static
public bool isConstructor()
//测试该方法是否为构造函数
public bool isDestructor()
//测试该方法是否为析构函数
public int getModifiers()
//取得该方法的修饰符
public ReflectionClass getDeclaringClass()
//取得该方法所属的类
//Inherited from ReflectionFunction
final private__clone()
5

本文发布于:2023-05-28 04:50:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/797163.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:是否   取得   测试   方法   参数   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图