ReflectionClass与Closure

<?php
/*** Class A*/
class A{}$obj = new ReflectionClass('A');
var_export($obj.PHP_EOL);

类后面加上PHP_EOL会把当前类的详细接口文档打印出来。

ReflectionClass 可以利用这个动态创建类,动态使用类方法参数。

try{
//如果存在控制器名字的类
if(class_exists($this->getController())) {
//利用反射api构造一个控制器类对应的反射类
$rc = new ReflectionClass($this->getController());
//如果该类实现 了IController接口
if($rc->implementsInterface('IController')) {
//该类拥有解析后的action字符串所指向的方法名
if($rc->hasMethod($this->getAction())) {
//构造一个控制器类的实例
$controller = $rc->newInstance();
//获取该类$action参数所指向的方法对象
$method = $rc->getMethod($this->getAction());
//反射类方法对象的调用方式:
$method->invoke($controller);
} else {
//以下为可能抛出异常
throw new Exception("Action");
}
} else {
throw new Exception("Interface");
}
} else {
throw new Exception("Controller");
}}catch(exception $e){echo $e;}

Closure //闭包的意思。这个跟javascript的闭包有点类似。

function getClosure(){
return function(){};
}
var_dump(getClosure());//可以看到是一个 Closure Object

转载于:https://www.cnblogs.com/canbefree/p/5212531.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32中断优先级的管理(NVIC)

STM32 NVIC 中断优先级管理 CM3 内核支持 256 个中断&#xff0c;其中包含了 16 个内核中断和 240 个外部中断&#xff0c;并且具有 256级的可编程中断设置。STM32 并没有使用 CM3 内核的全部东西&#xff0c;而是只用了它的一部分。STM32 有 84 个中断&#xff0c;包括 16 个…

docker修改容器名字

查看一下容器的名字 这个laughing_elion是下载es时候默认的名字 修改容器名字 docker rename 容器原来名 要改为的名字 最后可以看到容器名已经修改成功

STM32 串行通信原理

处理器与外部设备通信的两种方式&#xff1a; 并行通信 传输原理&#xff1a;数据各个位同时传输。优点&#xff1a;速度快缺点&#xff1a;占用引脚资源多 串行通信 传输原理&#xff1a;数据按位顺序传输。优点&#xff1a;占用引脚资源少缺点&#xff1a;速度相对较慢 …

linus下centos7防火墙设置

CentOS7 默认使用firewalld防火墙&#xff0c;如果想换回iptables防火墙&#xff0c;可关闭firewalld并安装iptables。 1:安装firewalld服务 yum install firewalld 2、firewalld的基本使用 启动&#xff1a; systemctl start firewalld &#xff08;关闭后显示notrunning&a…

串口通信寄存器/库函数配置、实例编写

常用的串口相关寄存器 USART_SR状态寄存器USART_DR数据寄存器USART_BRR波特率寄存器 串口操作相关库函数&#xff08;省略入口参数&#xff09;&#xff1a; void USART_Init(); //串口初始化&#xff1a;波特率&#xff0c;数据字长&#xff0c;奇偶校验&#xff0c;硬件流…

使用docker安装Mongodb

下载mongo3.2的docker镜像&#xff1a; docker pull mongo:3.2 使用docker命令启动&#xff1a; docker run -p 27017:27017 --name mongo \ -v /mydata/mongo/db:/data/db \ -d mongo:3.2 查看已经成功启动

移动端meta标签

现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置&#xff0c;如何阻止双击放大&#xff1f;user-scalableno <!-- 禁止缩放 --> <meta name”viewport” content”widthdevice-width,initial-scale1.0,maximum-scale1.0,user-scalableno”> <!…

正点原子stm32--串口通信实验讲解里关于USART_RX_STA的问题与思考

这篇博文讲的挺详细的可以参考以下&#xff1a; USART_RX_STA详解

什么是真正的程序员?

什么是真正的程序员 这篇文章的原文来自&#xff1a;A Little Printf Story作者仿照《小王子》中的情节&#xff0c;通过小printf遇见的不同类型的程序员&#xff0c;最后悟出什么才是真正的程序员&#xff01;第一次翻译有很多不妥&#xff0c;欢迎留言指正。 文章略长&#x…

为什么会出现docker

docker镜像&#xff0c;一次构建&#xff0c;到处运行

docker和虚拟机的区别

虚拟机缺点&#xff1a; docker和虚拟机的不同之处&#xff1a;

独立看门狗实验

为什么要看门狗 在由单片机构成的微型计算机系统中&#xff0c;由于单片机的工作常常会受到来自外界电磁场的干扰&#xff0c;造成程序的跑飞&#xff0c;而陷入死循环&#xff0c;程序的正常运行被打断&#xff0c;由单片机控制的系统无法继续工作&#xff0c;会造成整个系统…

Manthan, Codefest 16

暴力 A - Ebony and Ivory import java.util.*; import java.io.*;public class Main {public static void main(String[] args) {Scanner cin new Scanner (new BufferedInputStream (System.in));int a cin.nextInt ();int b cin.nextInt ();int c cin.nextInt ();for…

docker资源

Docker资源 Docker官方英文资源&#xff1a; docker官网&#xff1a;http://www.docker.com Docker windows入门&#xff1a;https://docs.docker.com/windows/ Docker Linux 入门&#xff1a;https://docs.docker.com/linux/ Docker mac 入门&#xff1a;https://docs.do…

ios apple pay 证书配置

一 环境配置 需要开发者账号 开发者中心https://developer.apple.com/membercenter/index.action 添加一个APP IDs二&#xff0e;配置Merchant IDs商业ID 下面进行appids和商业id的绑定 之后在回到appids中查看id中的apple pay&#xff0c;发现已经变为可使用状态了 接下来是为…

STM32 通用定时器基本原理

STM32F10x系列总共最多有8个定时器&#xff1a; 三种STM32定时器区别&#xff1a; 通用定时器功能特点描述&#xff1a; ①、 STM32 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括&#xff1a; 位于低速的APB1总线上(时钟来源可以是APB1的时钟) 16 位向上、向…

初识-Android之智能短信项目相关技术整理

标签页切换采用传统的TabHost&#xff1a; 采用TabActivty实现TabHost。 效果图-后补&#xff1a; 相关技术详解推荐&#xff1a; http://blog.csdn.net/zhouli_05/article/details/7696054 这里我解决了一个TabActivity和子Activity共享TabActivity的OptionMenu的问题&#xf…

STM32 定时器中断

通用定时器工作过程&#xff1a; 时钟选择&#xff1a; 计数器时钟可以由下列时钟源提供&#xff1a; 内部时钟(CK_INT)外部时钟模式1&#xff1a;外部输入脚(TIx)外部时钟模式2&#xff1a;外部触发输入(ETR)内部触发输入(ITRx)&#xff1a;使用一个定时器作为另一个定时器…