<?php
class ReflectionFunction implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export()
    //导出该函数的详细信息
    public string getName()
    //取得函数名
    public bool isInternal()
    //测试是否为系统内部函数
    public bool isUserDefined()
    //测试是否为用户自定义函数
    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()
    //取得参数名
    public bool isPassedByReference()
    //测试该参数是否通过引用传递参数
    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()
    //测试该类是否为系统内部类
    public bool isUserDefined()
    //测试该类是否为用户自定义类
    public bool isInstantiable()
    //测试该类是否被实例化过
    public bool hasConstant(string name)
    //测试该类是否有特定的常量
    public bool hasMethod(string name)
    //测试该类是否有特定的方法
    public bool hasProperty(string name)
    //测试该类是否有特定的属性
    public string getFileName()
    //取得定义该类的文件名,包括路径名
    public int getStartLine()
    //取得定义该类的开始行
    public int getEndLine()
    //取得定义该类的结束行
    public string getDocComment()
    //取得该类的注释
    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 setStaticPropertyValue(string name, mixed value)
    //设置该类的静态属性值,若private,则不可访问,有悖封装原则
    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()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

⑦ReflectionProperty类:
<?php
class ReflectionProperty implements Reflector
{
    final private __clone()
    public __construct(mixed class, string name)
    public string __toString()
    public static string export()
    //导出该属性的详细信息
    public string getName()
    //取得该属性名
    public bool isPublic()
    //测试该属性名是否为public
    public bool isPrivate()
    //测试该属性名是否为private
    public bool isProtected()
    //测试该属性名是否为protected
    public bool isStatic()
    //测试该属性名是否为static
    public bool isDefault()
    public int getModifiers()
    //取得修饰符
    public mixed getValue(stdclass object)
    //取得该属性值
    public void setValue(stdclass object, mixed value)
    //设置该属性值
    public ReflectionClass getDeclaringClass()
    //取得定义该属性的类
    public string getDocComment()
    //取得该属性的注释
}
?>

⑧ReflectionExtension类
<?php
class ReflectionExtension implements Reflector {
    final private __clone()
    public __construct(string name)
    public string __toString()
    public static string export()
    //导出该扩展的所有信息
    public string getName()
    //取得该扩展的名字
    public string getVersion()
    //取得该扩展的版本
    public ReflectionFunction[] getFunctions()
    //取得该扩展的所有函数
    public array getConstants()
    //取得该扩展的所有常量
    public array getINIEntries()
    //取得与该扩展相关的,在php.ini中的指令信息
    public ReflectionClass[] getClasses()
    public array getClassNames()
}
?>

php反射方法信息的更多相关文章

  1. 巧用Mono.Cecil反射加载类型和方法信息

    最近在做服务的细粒度治理,统一管理所有服务的方法.参数.返回值信息.方便后续的各个模块之间的对接和协作. 目前系统中所有的服务,管理到接口契约粒度,即服务接口声明和服务接口实现.要做服务的细粒度治理: ...

  2. Java 反射理解(三)-- Java获取方法信息

    Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...

  3. 通过Relect反射方法创建对象,获得对象的方法,输出对象信息

    package reflects; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java. ...

  4. java反射子之获取方法信息(二)

    一.获取方法 1.方法作用. 2. 二.获取方法信息.(修饰符,返回值,方法名称,参数列表,抛出的异常). ############################################## ...

  5. 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析

    作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  6. Javaweb学习笔记——(二十七)——————泛型、泛型的通配符、反射泛型信息、反射注解、注解

    泛型     1.泛型类:具有一个或多个类型变量的类,称之为泛型类 class A<T>{ } 2.在创建泛型实例时,需要为其类型变量赋值 A<String> a = new ...

  7. android黑科技系列——获取加固后应用App的所有方法信息

    一.前言 在逆向应用的时候,我们有时候希望能够快速定位到应用的关键方法,在之前我已经详细介绍了一个自己研发的代码动态注入工具icodetools,来进行动态注入日志信息到应用中,不了解的同学可以查看这 ...

  8. 【转】第6篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+自动反射方法分析

    作者: 牛A与牛C之间 时间: 2013-11-21 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第6篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  9. 【译】5. Java反射——方法

    原文地址:http://tutorials.jenkov.com/java-reflection/methods.html ====================================== ...

随机推荐

  1. 2-功能1:基于用户认证组件和Ajax实现登录验证(图片验证码)

    1.登录页面的设计 (1)label标签的id属性 label标签的id属性,点击label标记,相当于点击了input框 bootstarp样式 class="form-group&quo ...

  2. .Net Core 管道机制

    开篇先上一张中间件原理图,帮助大家对管道机制形成一个直观的认识 下面我们实现一个简单的管道机制,以此为例深入理解管道机制的原理 1. 首先定义一个委托,该委托接收一个上下文对象,返回值为Task,代码 ...

  3. Codeforces 914 C 数位DP+暴力打表+思维

    题意 给出一个二进制数\(n\),每次操作可以将一个整数\(x\)简化为\(x\)的二进制表示中\(1\)的个数,如果一个数简化为\(1\)所需的最小次数为\(k\),将这个数叫做特殊的数, 问从\( ...

  4. cogs 1330 [HNOI2008]玩具装箱toy

    cogs 1330 [HNOI2008]玩具装箱toy 瞎扯,急忙AC的请跳过 感觉数据结构写的太多了有点晕=+ 发现还没学斜率优化+- 于是来学一学QwQ 上次这题打了个决策优化直接水过了..理论O ...

  5. SQL语句汇总(一)——数据库与表的操作以及创建约束

    首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...

  6. Qt-网易云音乐界面实现-1 窗口隐藏拖拽移动,自定义标题栏

    最近也换了公司,也换了新的工作,工资也象征性的涨了一点点,但是最近心里还是慌慌,不知道为什么,没有那种踏实感,感觉自己随时可以被抛弃的感觉.感觉自己在荒废时间,也感觉自己在浪费生命. 为了让自己在被抛 ...

  7. SSH结合EasyUI系统(一)———简单介绍

    鉴于前文<不仅仅是吐槽>,决定将自己学过的和在学的东西整理一下放进园子:做一个好园友! 接下来将会持续更新的是近一段时间在学的java web中比较流行的框架SSH(Struts+Spri ...

  8. java高并发之锁的使用以及原理浅析

    锁像synchronized同步块一样,是一种线程同步机制.让自Java 5开始,java.util.concurrent.locks包提供了另一种方式实现线程同步机制——Lock.那么问题来了既然都 ...

  9. iFIERO - (一) 宇宙大战 SPACE BATTLE — 场景SCENE、SpriteKit精灵、PARTICLE粒子及背景音乐

    开始游戏教程前,首先介绍一下SpriteKit是什么?SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片或者精灵动起来.SpriteKit使用渲染循环,利用图形硬件 ...

  10. DevOps on AWS之Cloudformation实践篇

    cloudformation入门实践 AWS cloudformation通过模板对AWS云资源进行编排和调用.并且可以通过模板代码层面的修改就可以对现有环境进行升级改造,云端业务的灵活便捷特点展现无 ...