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();
- }
- }
PHP:ReflectionClass的更多相关文章
- php -- 反射ReflectionClass
反射类:ReflectionClass 反射就是将其他类的结构给反应出来,从而可以对类的结构进行了解便于对类的使用. ReflectionClass::export(类名); 返回结果为三个数组:常量 ...
- PHP反射API
近期忙着写项目,没有学习什么特别新的东西,所以好长时间没有更新博客.我们的项目用的是lumen,是基于laravel的一个轻量级框架,我看到里面用到了一些反射API机制来帮助动态加载需要的类.判断方法 ...
- PHP MVC自己主动RBAC自己主动生成的访问路由
使用的关键点: ReflectionClass class Rbac extends MY_Controller { public function index() { $arr = glob( __ ...
- 详解PHP反射API
PHP中的反射API就像Java中的java.lang.reflect包一样.它由一系列可以分析属性.方法和类的内置类组成.它在某些方面和对象函数相似,比如get_class_vars(),但是更加灵 ...
- 反射API提供的常用类和函数
ReflectionParameter 取回了函数或方法参数的相关信息. {//要自行检查函数的参数,首先创建一个 ReflectionFunction 或 ReflectionMethod 的 实例 ...
- PHP反射API (转)
http://www.cnblogs.com/zyf-zhaoyafei/p/4922893.html 近期忙着写项目,没有学习什么特别新的东西,所以好长时间没有更新博客.我们的项目用的是lumen, ...
- PHP反射API的使用、体会、说明
最近开发支付宝相关功能的时候,由于支付宝的SDK比较落伍,不支持composer的方式加载,使用三方的composer SDK又觉得不放心 为了简化代码的调用方式,使用PHP的反射类针对支付宝官方SD ...
- java web 开发三剑客 -------电子书
Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...
- 所有selenium相关的库
通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...
随机推荐
- codevs 5960 信使x
题目描述 Description •战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位).指挥部设在第一个哨所. ...
- KMP 串的模式匹配 (25 分)
给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出.如果找不到,则输出“Not ...
- websocket协议解决消息发送问题 Could not decode a text frame as UTF-8.
在使用websocket 时出现了Could not decode a text frame as UTF-8 首次连接成功当发送消息时,出现了编码作错误 第一请求页面时,连接成功 当发送消息时,不加 ...
- 分布式-信息方式-ActiveMQ结合Spring
ActiveMQ结合 Spring开发■ Spring提供了对JMS的支持,需要添加 Spring支持jms的包,如下: <dependency> <groupId>org.a ...
- 数据库事务ACID与隔离级别
如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的 ...
- C++入门经典-例2.3-在print函数中使用附加符号
1:代码如下: // 2.3.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int main() { ; /*定义长整型变量,为其赋值*/ ...
- 20175215 2018-2019-2 第四周Java课程学习总结
第五章学习内容 1.子类的继承性 (1)子类和父类在同一包中的继承性 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中 ...
- 套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
说明 本文下面内容基本上是截取自stackoverflow,针对这两个选项,在另外一篇文章中做了总结,请移步<Linux TCP套接字选项 之 SO_REUSEADDR && S ...
- 三步解决IDEA系列开发工具 RubyMine、IntelliJ IDEA 卡顿问题
近日有小伙伴跟我反映说自己的开发工具很卡,有没有什么解决方案?答案是当然有啦!接下来看看怎么设置! 1.打开RubyMine,或IDEA,上边工具栏选择Help,下拉选择Edit Custom VM ...
- eigenvalues problem
由于在看paper中经常会看到generalized eigenvalues.eigenvalues problem等字眼,今晚终于开始认真地重新看了一下线性代数中这部分内容.下面是在学习过程中找出来 ...