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(阵列)

}

>

tag:反射中文描述实例电脑软件

相关内容