18842388900

网站建设 APP开发 小程序

Article/文章

记录成长点滴 分享您我感悟

您当前位置>首页 > 知识 > 网站建设

PHP反射api应为

理解反思

它指的是PHP程序在PHP运行状态下的扩展分析,导出或提取有关类,方法,属性,参数甚至注释的详细信息。这种动态获取的信息和动态调用对象的能力称为反射API。 Reflection是一种在面向对象模型中操作元模型的API。它非常强大,可以帮助我们构建复杂,可扩展的应用程序。 (ps:包含在工厂模式中)

Reflection API是一个php内置的oop技术扩展,包括类,异常和接口,可用于帮助我们分析其他类,接口,方法,属性和扩展。这些oop扩展称为反射。

ReflectionClass

[PHP]

ReflectionClass类实现了Reflector

{

最终私人__clone()

公共对象__construct(字符串名称)

公共字符串__toString()

公共静态字符串导出()

//导出类的详细信息

公共字符串getName()

//获取类名或接口名称

公共bool isInternal()

//测试该类是否是系统内部类

public bool isUserDefined()

//测试类是否是用户定义的类

public bool isInstantiable()

//测试类是否已实例化

public bool hasConstant(string name)

//测试类是否具有特定常量

public bool hasMethod(string name)

//测试类是否有特定的方法

公共bool hasProperty(字符串名称)

//测试类是否具有特定属性

公共字符串getFileName()

//获取定义类的文件名,包括路径名

Public int getStartLine()

//获取定义类

的起始行

Public int getEndLine()

//获取定义类

的结束行

公共字符串getDocComment()

//获取此类的注释

Public ReflectionMethod getConstructor()

//获取此类的构造函数信息

Public ReflectionMethod getMethod(string name)

//获取类的具体方法信息

Public ReflectionMethod [] getMethods()

//获取该类的所有方法信息

Public ReflectionProperty getProperty(字符串名称)

//获取特定的属性信息

Public ReflectionProperty [] getProperties()

//获取类的所有属性信息

公共数组getConstants()

//获取该类的所有常量信息

公共混合getConstant(字符串名称)

//获取该类的具体常量信息

Public ReflectionClass [] getInterfaces()

//获取接口类信息

public bool isInterface()

//测试类是否是接口

公共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)

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

公共数组getStaticProperties()

//获取类的所有静态属性

公共混合getStaticPropertyValue(字符串名称[,默认混合])

//获取类的静态属性值,如果是私有的,则无法访问

Public void setStaticPropertyValue(string name,mixed value)

//设置类的静态属性值,如果是私有的,则无法访问,有包装原则

公共数组getDefaultProperties()

//获取类的属性信息,没有静态属性

公共bool isIterateable()

public bool implementsInterface(string name)

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

Public ReflectionExtension getExtension()

公共字符串getExtensionName()

}

?>

工厂模式应用:

[PHP]

类MoveDataFactory

{

/**

*描述:简单工厂模式,根据模式选择不同的实例化对象

* @return对象实例

*/

公共函数GetMoveClass($ classname)

{

$ reflectionclass=new ReflectionClass($ classname);

返回$ reflectionclass-> newInstance();

}

}

网站建设,小程序开发,小程序制作,微信小程序开发,公众号开发,微信公众号开发,网页设计,网站优化,网站排名,网站设计,微信小程序设计,小程序定制,微信小程序定制

相关案例查看更多