先看看官方文檔的解釋
__set() is run when writing data to inaccessible properties.
__get() is utilized for reading data from inaccessible properties.
究竟用中文怎麼翻譯呢? inaccessible :n. 難達到;難接近;無法理解。
有程式碼有真相:
{ return
var_dump( var_dump( var_dump( var_dump( var_dump( $s $s $s ?> |
如果沒有__get方法,執行var_dump($s->e) 會有一個notice,提示沒有定義屬性$e
總結:
1. 從一個難以存取的屬性讀取資料的時候__get()方法被呼叫
2. 向一個難以存取的屬性賦值的時候__set() 方法被呼叫
3. 難以存取包括:(1)私有屬性,(2) 沒有初始化的屬性
4.__isset() __unset( ) 也類似
以上就介紹了PHP 魔術方法__set __get 方法,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。