@LP-DIMAN

Для чего нужны магические методы get и set в PHP?

Покажите полезный практический пример, пожалуйста
  • Вопрос задан
  • 2170 просмотров
Пригласить эксперта
Ответы на вопрос 3
class foo
{
    protected $bar = 'qwerty';
    
    public function __get($name)
    {
        if ('bar' === $name) return $this->bar;
        return 'not found';
    }

    public function __set($property, $value)
    {
        if ('bar' === $property) $this->bar = $value;
    }
}

$f = new foo();
echo $f->bar; // qwerty
echo $f->asd; // not found
$f->bar = 'zxc';
echo $f->bar; // zxc
Ответ написан
Комментировать
@square
Это из области метапрограммирования, довольно очевидный пример - возможность конструировать объекты у которых будут свойства и методы, которые не известны заранее, например генерация объекта по его wsdl-описанию, RPC и т.д.
Ответ написан
Комментировать
He11ion
@He11ion
PHP-monkey
В основном нужны для проверок на доступ/валидность/етс свойств класса, позволяют ограничить запись/чтение. Так же с успехом заменяются функциями getИмяСвойства. На методы не влияют.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы