加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php-反射机制

发布时间:2020-12-13 05:18:35 所属栏目:PHP教程 来源:网络整理
导读:php自5.0开始提供了反射机制 ,主要是?反射类(ReflectionClass)和反射函数(ReflectionFunction)等, (个人简介,就是在通用的实例化方法里 ,传入了$class_name) 什么是反射 他是指PHP在运行状态中,动态的获取类、方法、属性、参数、注释等信息和动态

php自5.0开始提供了反射机制 ,主要是?反射类(ReflectionClass)和反射函数(ReflectionFunction)等,

(个人简介,就是在通用的实例化方法里 ,传入了$class_name)

什么是反射


他是指PHP在运行状态中,动态的获取类、方法、属性、参数、注释等信息和动态调用对象的方法的功能。

有什么用


可以帮助我们构建复杂的,可扩的运用。比如自动加载插件,自动生成文档等

方释义

PHP Reflection 官方文档

从 PHP 5 开始支持反射。并提供了完整的反射 API。


添加了对类、接口、函数、方法和扩展进行逆向工程的能力。


此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。

从以上描述可以得出的结论在于一个关键词 “逆向工程”。


反射的最基本用途就在于一个逆向溯源。


它的主要目的就是在运行时分析类或者对象的状态。


从而可以导出或提取出关于类、方法、属性、参数等的详细信息,包括注释等。

常用场景

元编程、依赖注入、对象池、动态代理、自动生成文档、某些设计模式等。

平时应用最多的可能就是利用反射在运行时对某些对象就行调试。


还可以在不修改目标类代码的情况下,调用其私有属性及方法。


以及用反射封装对象访问的动态代理,从而可以实现诸如拦截,参数预处理等效果。

利用好这些,我们就可以在不改变原有代码的基础上,在外层封装一层代理或者叫做“壳子”。


这层“壳子”可以动态的改变原有的运行逻辑,所以能够实现更抽象和复杂的扩展。

至于其他的像依赖注入之类的,一般来说底层框架会用到。


日常的业务逻辑中,一般来说很少会有用到反射的情况。

总结

备忘一下,人老记性差。


用到的时候,猛然忘了叫什么。。。

别人的栗子,顺手牵羊:


What is Reflection in PHP?


Reflection in PHP


Meta Programming and Reflection in PHP

Reflection => 反射

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读