当前位置:首页 > 日记 > 正文

PHP反射使用实例和对PHP反射API的中文描述

PHP反射使用实例和对PHP反射API的中文描述
在近年来的发展,我们需要的数量,名称,和秩序的一类方法的参数,使参数的名称可以从_get美元了。

如果该方法的原型测试($ UID,美元,然后分)我知道它需要从_get美元

复制代码代码如下所示:

美元美元'uid_get UID = { };

得分= { 'score美元美元_get};

然后调用方法$ obj ->测试($ UID,$分)

当然,前提是参数的名称是一致的,get方法传递值变量的名称是一致的。

通过使用PHP的反射API获得函数参数名称和参数的默认值的方法如下:

复制代码代码如下所示:

< PHP

class TestClass {
公共功能testfunc($参数,param2美元= 0){
}

}
$方法=新反射('testclass ','testfunc);

$params = $方法——>得到相机的参数();

foreach($params达参数){

echo'param名称:'。$参数-> getName(),;

如果($参数->选择()){

echo'default值:。$参数-> getdefaultvalue(),;

}

}
下面是PHP反射API的介绍:

1。使用:

此扩展分析PHP程序,派生或提取关于类、方法、属性、参数等的详细信息,包括注释。

反射可以说是对PHP库函数的扩展:类/对象类/对象对象函数。

它主要用于通过程序对现有PHP程序中的类、方法等信息进行检测和处理。

2,API概述:

复制代码代码如下所示:

类反射{ }

接口反射器{ }

类reflectionexception延伸例外{ }

类reflectionfunction实现反射{ }

类reflectionparameter实现反射{ }

类反射延伸reflectionfunction { }

类reflectionclass实现反射{ }

类reflectionobject延伸reflectionclass { }

类reflectionproperty实现反射{ }

类reflectionextension实现反射{ }
3,详细描述:(示例在PHP手册中详细说明)

复制代码代码如下所示:

(1)反射类

< PHP

类反射

{

公共静态混合出口(反射R {,返回bool })

详细信息/派生一个类或方法

公共静态数组getmodifiernames(int修饰)

获取名称修饰符

}

>
reflectionexception类
这个类继承标准类,而不需要特殊的方法和属性。
reflectionfunction类

< PHP

类reflectionfunction实现反射镜

{

私人最终__clone()

公共对象__construct(String name)

Public string __toString ()

公共静态字符串导出()

关于出口功能的详细信息/

公共字符串getName()

获取函数名

public bool是()

测试系统内部功能

public bool isuserdefined()

来测试用户定义函数是否

作用:取文件名(字符串)

获取文件名,包括路径名

getstartline public int()

获取行定义函数

getendline public int()

获取/结束行定义函数

公共字符串getdoccomment()

获取函数注释

公共getstaticvariables(阵列)

获取静态变量

公共混合调用(混合*参数)

用参数列表调用函数参数

公共混合invokeargs(数组参数)

调用函数,传递数组参数

public bool returnsreference()

测试函数是否返回引用。

公共reflectionparameter { }得到相机的参数()

所需的参数这个方法返回一个对象数组。

getnumberofparameters public int()

获取方法所需的参数数

getnumberofrequiredparameters public int()

获取方法所需的参数数

}

>
(4)reflectionparameter类:

< PHP

类reflectionparameter实现反射镜

{

私人最终__clone()

公共对象__construct(String name)

公共字符串__tostring()

公共静态字符串导出()

参数导出的详细信息

公共字符串getName()

获取参数名

public bool ispassedbyreference()

测试参数是否通过引用传递参数

市民ReflectionClass getClass()

如果参数对象返回对象的名称。

public bool ISArray()

测试参数是否是数组类型。

public bool allowsnull()

测试参数允许为空。

public bool是可选的()

当默认参数是可选时,此参数是可选的测试。

public bool isdefaultvalueavailable()

测试参数是否为默认参数

公共getdefaultvalue(混合)

参数的默认值

}

>
(5)reflectionclass类:

< PHP

类reflectionclass实现反射镜

{

私人最终__clone()

公共对象__construct(String name)

公共字符串__tostring()

公共静态字符串导出()

类/导出的详细信息

公共字符串getName()

获取类或接口名

public bool是()

测试类系统/内部类

public bool isuserdefined()

测试是否为用户自定义类。

public bool isinstantiable()

来测试类是否实例化了。

public bool hasconstant(String name)

如果类具有特定的常数

public bool hasmethod(String name)

如果类具有特定的测试方法

public bool hasproperty(String name)

测试类属性。

作用:取文件名(字符串)

获取类文件名,包括路径名

getstartline public int()

开始/类定义

getendline public int()

类定义的结尾

公共字符串getdoccomment()

评论发表了/

公共getconstructor(反射波法)

获取类构造函数的信息

公共反射getMethod(String name)

获取关于类的特定方法的信息

公共反射getMethods(){ }

获取类的所有信息/方法

公共reflectionproperty getProperty(String name)

实现特定属性信息

公共reflectionproperty getProperties(){ }

获取所有的类属性信息

公共getconstants(阵列)

所有常量/信息的类

公共混合getconstant(String name)

获取特定的信息常量

公共reflectionclass getinterfaces(){ }

获取接口信息

public bool isinterface()

测试类接口是否为

public bool是抽象的()

测试该类是否为抽象类。

公共布尔不是()

测试是否声明为最终类。

getmodifiers public int()

获取类修饰符,返回类型可能是资源类型。

通过反思::getmodifiernames / /($类-> getmodifiers)(延伸阅读)

public bool isinstance(stdClass对象)

测试传入的对象是否为类的实例。

公共stdClass newInstance(混合*参数)

创建类的实例

市民ReflectionClass getParentClass()

获取父类

public bool issubclassof(reflectionclass类)

测试 / /是否传入类的父类

公共getstaticproperties(阵列)

获取类的所有静态属性

公共混合getstaticpropertyvalue(String name {,}混合默认)

如果私有不可访问,则该类的静态属性获得值。

Public void setStaticPropertyValue (string name, mixed value)

设置类值的静态属性,如果私有不可访问,与封装原则相反

公共getdefaultproperties(阵列)

在没有静态属性的情况下获取类的属性信息

public bool isiterateable()

public bool implementsinterface(String name)

测试是否实现了特定的接口。

公共reflectionextension getextension()

公共字符串getextensionname()

}

>
类的反射:

< PHP

类反射reflectionfunction延伸

{

公共__construct(混合班的名字)

公共字符串__tostring()

公共静态字符串导出()

信息方法/

(stdClass对象调用公共混合,混合*参数)

调用方法

公共混合invokeargs(stdClass对象,数组参数)

调用方法,多参数传输

公共布尔不是()

测试是否为最后的

public bool是抽象的()

测试是否为抽象/ /

public bool为()

要测试是否为公共 /

public bool计划()

来测试是否为私有 /

为保护公众()

测试受保护的方法是否为

public bool是静止的()

来测试是否为静态

public bool isconstructor()

是否对测试构造函数进行了测试

public bool isdestructor()

测试/析构函数的方法是否

getmodifiers public int()

此方法具有 /修饰符

市民ReflectionClass getDeclaringClass()

使方法类

从reflectionfunction / /继承

私人最终__clone()

公共字符串getName()

public bool是()

public bool isuserdefined()

作用:取文件名(字符串)

getstartline public int()

getendline public int()

公共字符串getdoccomment()

公共getstaticvariables(阵列)

public bool returnsreference()

公共reflectionparameter { }得到相机的参数()

getnumberofparameters public int()

getnumberofrequiredparameters public int()

}

>
的reflectionproperty类:

< PHP

类reflectionproperty实现反射镜

{

私人最终__clone()

公共__construct(混合班的名字)

公共字符串__tostring()

公共静态字符串导出()

属性/导出的详细信息

公共字符串getName()

属性名称

public bool为()

属性名称为:测试公开

public bool计划()

属性的名称是

为保护公众()

属性名称是测试保护的。

public bool是静止的()

属性名称是:测试静态

public bool isdefault()

getmodifiers public int()

获取修饰符

公共混合getValue(stdClass对象)

获取属性值

public void setValue(stdClass对象,混合值)

设置属性值

市民ReflectionClass getDeclaringClass()

获取/定义这个属性类

公共字符串getdoccomment()

注释的属性

}

>
的reflectionextension类

< PHP

类reflectionextension实现反射{

私人最终__clone()

公共__construct(String name)

公共字符串__tostring()
公共静态字符串导出()

所有信息的扩展

公共字符串getName()

扩展名

公共字符串获取版本()

扩展版本

公共reflectionfunction getfunctions(){ }

获取所有扩展函数

公共getconstants(阵列)

获取所有扩展的常数

公共getinientries(阵列)

让 / /在php.ini中的指令信息的扩张有关

公共reflectionclass getClasses(){ }

公共getclassnames(阵列)

}

>

相关文章

mysql触发器(触发器)的简明总结和使

mysql触发器(触发器)的简明总结和使

触发器,简明,电脑软件,mysql,1。什么触发 1,个人理解 触发器,字面上,了解触发装置,例如,触发器(哈哈,个人的理解)。例如,当黑暗的时候,你打开灯,你看到东西。你放鞭炮,点燃,就会爆炸。 2,官方定义 触发器(触发器)是一种特殊的存储过程。它的执行不是由程序…

从word文件中提取技术

从word文件中提取技术

文件,技术,电脑软件,word,问题: 朋友们翻到一个字2010文档。里面有很多照片。他们只想保留这些照片。如果复制、粘贴和保存为新文件,这是非常麻烦的。有没有很好的方法快速地从单词中提取图片 答案uff1a 快速从word文件中提取图片,并参考以…

Windows8.1更新1开机默认进入桌面

Windows8.1更新1开机默认进入桌面

默认,设置,桌面,电脑软件,注释:在构建9600.16608版本中出现了一个新的默认启动设置,它可以直接进入桌面系统。直接进入桌面是Windows 8.1已经存在的特性。感兴趣的朋友可以理解这篇文章。 最近,关于Windows 8.1的消息我们非常密集。现在有一个…

对swimsuitnetwork.exe-swimsuitne

对swimsuitnetwork.exe-swimsuitne

作用,电脑软件,swimsuitnetwork,exe,点评:swimsuitnetwork.exe是间谍软件相关进程。这个进程监视你的浏览行为,通过它去分析它的服务器进程也会弹出广告。 进程文件:swimsuitnetwork或swimsuitnetwork.exe 进程名称:保护材料swimsuitnetwork …

Word2007更改页眉或页脚的内容的方

Word2007更改页眉或页脚的内容的方

方法,页眉,内容,电脑软件,1、在Word2007插入的标签;;页眉和页脚组中,单击;头或页脚; 2,通过选择文本和修改,或使用迷你工具栏上的选项设置文本格式来更改页眉或页脚。例如,可以更改字体、应用粗格式或应用不同的字体颜色。 提示:查看页面视图(页面视…

Win8不能进入启动解决方案

Win8不能进入启动解决方案

解决方案,启动,电脑软件,评论:谁发挥Win8的朋友,必须适应这种情况,要进入启动选项,但我不知道从哪里进入。不喜欢win7,什么F2,F12,和将去设置的选项。这里是Win8系统的启动方法介绍。 1。Win8系统下,设置mdash;mdash;电力mdash;mdash;启动。 2,按住Shift…

会话信息存储在文件目录中,可以保存

会话信息存储在文件目录中,可以保存

类型,数字,文件,目录中,电脑软件,的1.session信息储存在哪里 复制代码代码如下所示: session_start(); _session美元{ 'name' } = 'marcofly; > 会话保存到C: Windows 临时目录,默认情况下,但在php.ini修改session.save_path值,会话的保存路径…

oracle常见错误代码(三)的分析与解决

oracle常见错误代码(三)的分析与解决

常见错误,代码,电脑软件,oracle,Oracle当然你看到的是Oracle的常见错误代码的分析与解决(三)。ora-00600:内部错误代码,参数:{数量},{ },{ },{ },{ } 原因:这种错误通常是Oracle的一个内部错误,这对于开源软件和oracle.ora-600误差经常陪的跟踪文件的…

oracle备份恢复的具体方法

oracle备份恢复的具体方法

方法,备份恢复,电脑软件,oracle,1.1数据库全数据库备份 注意:此操作需要启动数据库。 切换到Oracle用户并在OS端创建备份使用目录: mkdir /甲骨文/备份 登录到Oracle数据库并在数据库中创建备份使用目录 SQLPLUS /数据库 创建目录backup…

对nero.exe使用-尼禄是什么

对nero.exe使用-尼禄是什么

电脑软件,nero,exe,点评:nero.exe是一个CD / DVD刻录软件相关程序提前尼禄,用来记录音乐和影视的CD和DVD媒体 进程文件:尼禄或nero.exe 过程名称:尼禄前面 过程类别:安全风险的过程 英文描述: nero.exe是一个过程,属于前面内付的CD和DVD编写的应…

如何建立一个计算机密码Win8.1唤醒

如何建立一个计算机密码Win8.1唤醒

唤醒,密码,建立一个,电脑软件,复习:电脑睡觉后需要重新输入密码才能唤醒电脑,这样才能登陆系统。在这里我们要看看如何设置一台电脑来唤醒密码操作技巧,感兴趣的朋友可以参考下一个。 用户使用系统知道在计算机睡眠需要重新输入密码才能唤醒计…

什么过程pccnt过程查询pccnt.exe是

什么过程pccnt过程查询pccnt.exe是

查询,过程,电脑软件,pccnt,exe,点评:pccnt.exe是趋势PC-cillin杀毒软件相关程序来保护计算机免受病毒攻击 进程文件:pccnt或pccnt.exe 进程名称:趋势科技PC-cillin杀毒软件控制台 过程类别:安全风险的过程 英文描述: pccnt.exe是一个过程,属于…