2012-05-01 6 views
1

Можно создать дубликат:
PHP __get and __set magic methodsPHP методы "магические" Get/Set

У меня есть вопрос экзамен на 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 magic. Если вы реализуете эти методы, вы сможете увидеть имя, которое было вызвано, а в случае «set» - какое значение было передано. После этого вы можете делать все, что вы хотите с ним

Пример:

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

public function __get($name) 
{ 
    if ($name === "bar") 
    { 
     return $this->privateProperty; 
    } 
} 
Смежные вопросы