PHP反射
2013-11-25 18:35
274 查看
转载:http://blog.sina.com.cn/s/blog_8a18c33d01012xsn.html
反射函数:用来了解针对性类的一系列函数,比如get_class_methods()等
面向对象的编程中对象被赋予了自省的能力,而这个自省的过程就是反射.通过使用反射api就能够实现动态的获
取一个类所有属性和方法以及调用该方法和属性.
如果把php运行时看做是一面镜子,
把php代码看做是一个物体。
当你的程序在php运行时运行的时候,
你的程序想知道你现在运行的php代码的一些信息。
比如说我想动态调用一个类的方法,或者我想知道我的一个类到底有哪些方法,有哪些属性。
这就叫做反射。
比如有时候你想知道类的方法的是private还是public,只能靠反射了
你想知道某个函数的注释是什么,只能靠反射了
简单的说就是能让你进入类,对象,函数等语言元素的内部
反射函数:用来了解针对性类的一系列函数,比如get_class_methods()等
面向对象的编程中对象被赋予了自省的能力,而这个自省的过程就是反射.通过使用反射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反射获取当前函数的内容
- 详解php中反射的应用
- PHP反射API
- PHP反射ReflectionClass、ReflectionMethod 入门教程
- PHP中的reflection反射机制测试例子
- PHP的反射机制
- php反射机制以及利用php反射机制实现可插拔可扩展的插件架构
- PHP反射机制实现自动依赖注入
- PHP 反射(Reflection)
- PHPdragon framework(3.1) 用php反射实现插件的自动调用
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
- 了解下PHP的Reflection反射机制
- PHP中使用反射机制实现动态代理
- 初学PHP反射
- PHP基于反射机制实现插件的可插拔设计详解
- php 用反射API来获取一个类的原型
- 1.5反射--php反射学习
- PHP 反射API 之 ReflectionObject 的用法实例
- PHP的反射类ReflectionClass、ReflectionMethod学习记录