PHP:ReflectionClass
一、简介
反射API的整体类结构如下:
Reflector ;反射接口,反射类需要实现的功能
Reflection ;基础反射操作类
ReflectionZendExtension ;Zend引擎扩展反射类
ReflectionExtension ;普通扩展反射类
ReflectionFunctionAbstract ;方法和函数的抽象反射类
ReflectionFunction ;函数反射类
ReflectionParameter ;方法和函数的参数反射类型
ReflectionClass ;类反射类
ReflectionObject ;对象反射类
ReflectionMethod ;类方法反射类
ReflctionProperty ;类属性反射类
ReflectionClass ;类报告了一个类的有关信息
ReflectionException ;类继承Exception
二、常用函数
- ReflectionClass::__construct — 初始化 ReflectionClass 类
- ReflectionClass::newInstance — 从指定的参数创建一个新的类实例
三、例子
<?php namespace app\abstractfactory\controller; use ReflectionClass; use ReflectionException; class AbstractFactoryTest { public $namespace = '\app\abstractfactory\controller\\'; public function test() { $aClassName = $this->namespace . aClass; try { //$aClassName作为参数,传给ReflectionClass的构造函数 //在尝试赋值的时候会抛出 ReflectionException $a_class = new ReflectionClass($meatClassName); //实例化类 $a_Obj = $a_class->newInstance(); } catch (\ReflectionException $e) { return $e->getMessage(); } echo $a_Obj ->buy(); } }