反射在容器中有著你不看原始碼根本瞭解不到的重要性,一定要好好看看本文
不知道大家有沒有了解過GO的反射機制,咔咔在當時看了go的反射機制後說實話有點暈乎乎的。
但是在後來看了PHP的反射之後,不僅對go的反射有了一定的深入瞭解,並且對於PHP的反射也是更好的理解。
反射這一概念是在PHP5.0被引出來的,在目前使用的框架中咔咔知道的就有thinkphp和laravel都使用了反射來實現依賴注入。
對於反射的理解:其實就是從根獲取根以外的東西,放在程式設計中講就是隻要知道一個類就可以知道這個類所有的屬性和方法。
案例
這只是一個簡單的實現案例,獲取類的全部方法和屬性。可以看下圖中的列印結果跟TestReflection是否一致。
這個也從側面表現出現一個問題,就是會暴露出來一些本不應該暴露出來的資訊。
關於反射提供的介面還有很多,這裡就介紹幾個常用的,其餘的在框架原始碼中解析。
使用反射執行一個類的方法
列印出來的結果就是咔咔
使用反射執行一個類中帶引數的方法
使用反射執行一個類中不帶引數的方法
其它的方法你們自己可以嘗試嘗試,因為這個反射的介面在平時基礎開發是不怎麼用的,這咔咔給大家介紹的都是後邊在閱讀原始碼都是可以用的到的。
既然瞭解到了反射,那麼反射可以做什麼事情呢!其中有一個功能點自動生成檔案。
反射到這裡就簡單的瞭解一下,至於還想了解更多的介面使用可以去官方檢視對應的介面資訊。
在瞭解完反射之後就要開始進入正題了,就需要正式進入我們的容器環節了。只有上邊的基礎打好接下來的容器才能更好的理解。
堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大網際網路中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。
以上就是ThinkPHP容器之反射機制的詳細內容,更多請關注TW511.COM其它相關文章!