2012-05-01 80 views
1

可能重複:
PHP __get and __set magic methodsPHP 「神奇」 的方法獲取/設置

我對get/set方法考試的問題,但我無法找到任何直接的定義。有人可以爲我解釋/定義它,或者只是回答這個問題;

確定並描述在PHP中使用的兩個內置「魔術」方法 檢索並更新私有類/對象屬性。

謝謝。

+0

你可以在這個問題上檢查出的人工... – Zombaya

+3

http://www.google.com/search?q=php+魔法+方法 –

+0

http://thinkvitamin.com/code/9-magic-methods-for-php/ –

回答

4

其基本思路是:如果你調用$foo->bar,其中bar從未被定義爲該類的屬性,它將被髮送到get/set魔術方法。如果你實現了這些方法,你將能夠看到被調用的名字,並且在'set'的情況下,傳遞了什麼值。然後,你可以做任何你想做的事情

例子:

public function __set($name, $value) 
{ 
    if ($name === "bar") 
    { 
     $this->privateProperty = $value; 
    } 
} 

public function __get($name) 
{ 
    if ($name === "bar") 
    { 
     return $this->privateProperty; 
    } 
}