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 => 反射

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值