位置: 编程技术 - 正文

浅谈PHP的反射机制(php 反射)

编辑:rootadmin

推荐整理分享浅谈PHP的反射机制(php 反射),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php反射机制与应用,php反射获取方法参数,php 反射,浅谈php的反射机制,php 反射的优缺点,浅谈php的反射机设计,浅谈php的反射机设计,浅谈php的反射机制,内容如对您有帮助,希望把文章链接给更多的朋友!

1. 介绍

-- PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。

-- 反射是什么?

它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。

其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言。

php反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互。借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方法(也不同于常规调用),传递参数,动态调用类的静态方法。

反射api是php内建的oop技术扩展,包括一些类,异常和接口,综合使用他们可用来帮助我们分析其它类,接口,方法,属性,方法和扩展。这些oop扩展被称为反射。

通过ReflectionClass,我们可以得到Person类的以下信息:

1)常量 Contants

2)属性 Property Names

3)方法 Method Names静态

4)属性 Static Properties

5)命名空间 Namespace

6)Person类是否为final或者abstract

浅谈PHP的反射机制(php 反射)

2. 具体例子

创建一个Person类,然后使用ReflectionClass反射它

2.1)【创建Persion类】

2.2)【反射过程】

接下来反射它,只要把类名"Person"传递给ReflectionClass就可以了:

2.3)【反射后使用】

2.3.1)获取属性(Properties)

默认情况下,ReflectionClass会获取到所有的属性,private 和 protected的也可以。如果只想获取到private属性,就要额外传个参数:

privateproperties=privateproperties=class->getProperties(ReflectionProperty::IS_PRIVATE);

可用参数列表:

ReflectionProperty::IS_STATIC ReflectionProperty::IS_PUBLIC ReflectionProperty::IS_PROTECTED ReflectionProperty::IS_PRIVATE

如果要同时获取public 和private 属性,就这样写:ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED。

通过$property->getName()可以得到属性名。

2.3.2)【获取注释】

通过getDocComment可以得到写给property的注释。

2.3.3)【获取类的方法】

获取方法(methods):通过getMethods() 来获取到类的所有methods。

2.3.4)【执行类的方法】

标签: php 反射

本文链接地址:https://www.jiuchutong.com/biancheng/275006.html 转载请保留说明!

上一篇:PHP数组的定义、初始化和数组元素的显示实现代码(php数组有哪几种类型)

下一篇:Centos 6.5系统下编译安装PHP 7.0.13的方法(centos6.5下载)

  • 委托加工物资增值税纳税义务发生时间
  • 进项税大于销项税结转分录
  • 公司税务年报没报罚款多少
  • 银行共管账户现在可以开设吗
  • 员工辞退补偿金需要交个税吗
  • 开一般户需要提交人行吗
  • 公司往来借款在现金流量表哪里填写
  • 电信要收取安装费吗
  • 净资产账面价值怎么计算
  • 固定资产改造超过原值多少需要转固
  • t3用友软件怎么设置三级科目
  • 未取得发票的费用
  • 折扣金额发票
  • 进口设备贴息政策2019
  • 办理产权证费用明细
  • 公司的钱转到个人账户用途写什么
  • 工企业用地土地使用税怎么征收?
  • 全年一次性奖金计税方式2023
  • 税收分类编码里的劳务是劳务派遣的意思吗
  • 最近偷税女星都有谁
  • 残疾人保障金中的工资总额包括福利费用吗
  • 应付职工薪酬借方和贷方
  • 劳务派遣实缴资本
  • 制造费用明细科目大全
  • 小规模纳税人增值税申报表怎么填
  • 调出进程管理器
  • 应收账款借贷方向表示什么意思
  • 幼儿园资金收支管理财务制度
  • 本地磁盘c满了怎么清理
  • Linux怎么在目录中创建文件
  • 劳务公司的账务怎么做账
  • 如何设置鼠标移过超链接
  • 财务处理程序的方法
  • 薄雾笼罩着整个森林
  • 微信小程序父子通信
  • php公众号推送完整示例
  • php如何入门
  • 小规模纳税人是什么意思
  • 公司进口的货物会计分录
  • 退货可以开红字发票吗
  • 销售折扣增值税例题
  • 专用发票金额与专票不符
  • 一般纳税人销售货物税率
  • 公司支付宝账户怎么管理
  • 一般纳税人发生应税销售行为向购买方收取
  • 现金流量表季度期初现金余额怎么填
  • 广交会展务
  • 制造费用科目一定无余额
  • 汽车租赁费怎么做分录
  • 增值税怎么开
  • 设备维修费可以抵扣进项税吗
  • 税务稽查补缴上年所得税分录
  • 社保月费基数
  • 部门召开会议
  • 并购 投资
  • 实收资本未到位
  • 营改增之前广告位出租
  • 购入固定资产的增值税计入成本吗
  • 在建工程转固规定
  • 金蝶kis专业版怎么备份账套
  • mysql导入导出sql文件
  • 跨服务器访问数据库
  • windows禁止安装
  • windows7wifi密码
  • win8怎么设置
  • Win2003 上配置 VPN + NAT共享上网的步骤分享
  • fedora workstation怎么安装
  • ntldr.exe - ntldr
  • winxp开启远程控制
  • linux ultrasphinx Anonymous modules have no name to be referenced by
  • win10安装 升级
  • linux系统怎么安装wine
  • win10内置杀毒
  • windows 8
  • win10桌面上怎么分成几个区域
  • w10系统如何
  • WIN10怎么卸载更新
  • jquery事件解绑
  • 安卓应用 开发
  • 青海国家税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设