1. 程式人生 > >理解php反射機制-1

理解php反射機制-1

面向物件的程式設計中物件被賦予了自省的能力,而這個自省的過程就是反射.通過使用反射api就能夠實現動態的獲 取一個類所有屬性和方法以及呼叫該方法和屬性.


 如果把php執行時看做是一面鏡子, 把php程式碼看做是一個物體。


 當你的程式在php執行時執行的時候, 你的程式想知道你現在執行的php程式碼的一些資訊。 


 比如說我想動態呼叫一個類的方法,或者我想知道我的一個類到底有哪些方法,有哪些屬性。


 這就叫做反射。


 比如有時候你想知道類的方法的是private還是public,只能靠反射了
 你想知道某個函式的註釋是什麼,只能靠反射了
 簡單的說就是能讓你進入類,物件,函式等語言元素的內部


Reflection::export(new ReflectionExtension('reflection'));


首先它例項化了一個物件 物件來自類 ReflectionExtension, 引數是'reflection', reflection是一個php的模組, 而模組本身就是這個反射功能的核心


ReflectionExtension將它自身所在的 Reflection 模組作為引數來處理, 而ReflectionExtension物件就是專門用來解析php模組的


之後外層 Reflection::export()是 Reflection 類的方法, 該方法需要一個已處理過的php反射物件作為引數來解析並輸出內容 


這個例子雖然很典型,但是不夠實用, 所以可能不容易理解它在做什麼,我寫個更容易看懂的