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.pswp.cn/news/272333.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272333.shtml
英文地址,請注明出處:http://en.pswp.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;使用一個定時器作為另一個定時器…