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 => 反射 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |