理解php反射机制-1
来源:互联网 发布:彩票预测app源码 编辑:程序博客网 时间:2024/04/28 07:35
相信大家在使用Php过程中常常会用到像get_class,get_class_methods,get_class_vars这样的方法来获取类的属性和方法,特别是在使用第三方类库的时候,但大家有没有想过这些函数的工作原理是什么呢?没错,这就是我们熟知的反射机制,那么究竟什么事反射呢
面向对象的编程中对象被赋予了自省的能力,而这个自省的过程就是反射.通过使用反射api就能够实现动态的获 取一个类所有属性和方法以及调用该方法和属性.
如果把php运行时看做是一面镜子, 把php代码看做是一个物体。
当你的程序在php运行时运行的时候, 你的程序想知道你现在运行的php代码的一些信息。
比如说我想动态调用一个类的方法,或者我想知道我的一个类到底有哪些方法,有哪些属性。
这就叫做反射。
比如有时候你想知道类的方法的是private还是public,只能靠反射了
你想知道某个函数的注释是什么,只能靠反射了
简单的说就是能让你进入类,对象,函数等语言元素的内部
Reflection::export(new ReflectionExtension('reflection'));
首先它实例化了一个对象 对象来自类 ReflectionExtension, 参数是'reflection', reflection是一个php的模块, 而模块本身就是这个反射功能的核心
ReflectionExtension将它自身所在的 Reflection 模块作为参数来处理, 而ReflectionExtension对象就是专门用来解析php模块的
之后外层 Reflection::export()是 Reflection 类的方法, 该方法需要一个已处理过的php反射对象作为参数来解析并输出内容
这个例子虽然很典型,但是不够实用, 所以可能不容易理解它在做什么,我写个更容易看懂的
class x
{
public $a = 1;
private $b = 2;
protected $c = 3;
public function a(){}
private function b(){}
protected function c(){}
}
$ReflectionClass = new ReflectionClass('x');
Reflection::export($ReflectionClass);
执行这个就能更好理解它在做什么
进一步了解php的反射机制,推荐看这篇文章:http://blog.csdn.net/clh604/article/details/24623841
- 理解php反射机制-1
- 理解php反射机制-2
- php 反射机制 1
- OC 反射机制的理解(1)
- 反射机制理解
- java反射机制理解
- 反射机制的理解
- 理解JAVA反射机制
- java反射机制理解
- JAVA反射机制理解
- Java 反射机制理解
- 初步理解反射机制
- 理解C#反射机制
- 深度理解反射机制
- Java反射机制理解
- java反射机制理解
- 反射机制理解之一
- Java反射机制理解
- iOS中 block + GCD 实现异步非阻塞
- 谈谈RIP协议中的计时器
- “下载”中“载”的发音应该读几声——计算机学生视角
- c3p0连接池事务不能回滚的问题
- 《深入理解Android内核设计思想》已陆续在全国各大书店及网上书店上市,感谢大家一直以来的支持~~
- 理解php反射机制-1
- easyui 选择框(ComboBox)选中时触发事件
- 彻底禁用resource manager
- 【我所认知的BIOS】—> uEFI AHCI Driver(5) — 第一个protocol终于要开始安装了
- hibernate 中使用oracle数据库 与java Date数据类型 只显示到天 不显示时分秒的问题
- Hdu 1042 N! (高精度数)
- 分组,group,泳道 JBPM
- matlab求0-1封闭区域围成的面积
- 安装和使用安卓iGO遇到的问题及解决方法