Правильно ли использовать __call так? Здравствуйте. На сколько правильно использовать __call в таком случае (класс ниже)? Будет несколько методов set и не хотелось бы каждый раз $this возвращать, когда это можно сделать всего 1 разClass Aclass A
{
protected $data;
public function __call($name, $arguments)
{
if ( method_exists($this, $name) ) {
call_user_func_array([$this, $name], $arguments);
}
return $this;
}

public function get()
{
return $this->data;
}
protected function setPreset()
{
// тут код манипуляции с $data, без return
}
}
$A = new A();
$data = $A->setPreset()
->get();

21 Авг 2019 в 07:01
207 +1
1
Ответы
1

Да, использование метода call в данном случае вполне уместно. Он позволяет избежать повторения кода при вызове нескольких методов set и возвращении $this после каждого из них. В данном случае, если метод setPreset() не существует в классе A, то произойдет вызов метода call, который проверит наличие метода setPreset() и выполнит его, передавая ему аргументы, если они есть. Таким образом, вы сможете вызывать методы set без необходимости каждый раз возвращать $this.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир