反射在PHP中的應用

2022-01-26 05:00:22 字數 1157 閱讀 4176

反射是php5增加的功能,通過反射,可以匯出或提取出關於類、方法、屬性、引數等的詳細資訊。反射在日常的 web 開發中其實用的不多,更多的是在偏向底層一些的**中,比如說框架的底層中依賴注入、類載入、設計模式等等,都會大量運用到反射技術。

php的反射api很多,但是常用的一般都是reflectionclass、reflectionmethod、reflectionparameter和reflectionfunction。

首先看下反射在實際中是如何運用的,如下圖:

(1) 新建乙個反射物件

$reflection=new reflectionclass($class);  

說明:$class既可以是包含類名的字串也可以是物件。

(2) 常用的成員方法

$constructor=$reflection->getconstructor();  //獲取構造方法,返回的是reflectionmethod類的例項

$name=$reflection->getname();    //獲取類名,返回的是字串

$instance=$reflection->newinstanceargs($args); // 從給出的引數建立乙個新的類例項,返回的是應用類的例項

$c=$param->getclass();  //獲取反射類,返回的是reflectionclass類的例項

3.

reflectionmethod

(1) 常用的成員方法

$params=$constructor->getparameters();   //獲取構造方法的引數,返回的是由 reflectionparameter類的例項組成的陣列

說明:該成員方法是繼承自 reflectionfunctionabstract::getparameters()

JAVA反射在STRUTS中的應用

struts中action呼叫正常情況 doxx 某個動作的處理 反射機制 1 struts 動作處理action類 初始化時反射子類自身的結構,形成乙個對映,用來日後dispatchsubaction.return 存放了methods物件的map protected map getmethodm...

Reflections反射在Jfnal中的的使用

看jfnal教程中,路由的配置是這樣配置的 然後,今天看了下專案中的 實現,居然使用了反射,之前只是了解過反射以及簡單寫個demo,但是沒有在專案中使用過反射的 這次看到了,必須要好好研究一下。上面想過的注釋也寫比較清楚了,也是佩服專案組的大佬,明明只是乙個簡單的jfnal路由配置,但是大佬就是懶得...

php反射應用場景 詳解php中反射的應用

反射是在php執行狀態中,擴充套件分析php程式,匯出或提取出關於類 方法 屬性 引數等的詳細資訊,包括注釋。這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為反射api。反射是操縱物件導向范型中元模型的api,其功能十分強大,可幫助我們構建複雜,可擴充套件的應用。其用途如 自動載入外掛程式,自動生...