Задать вопрос

Пример метода __call в PHP?

Слышал что с помощью магического метода __call в php можно имитировать множественное наследование (не поддерживается php). Не могли бы привести или дать ссылку на простейший пример такой реализации?
  • Вопрос задан
  • 1694 просмотра
Подписаться 4 Простой 6 комментариев
Решения вопроса 2
qonand
@qonand
Software Engineer
Эмуляция множественного наследования с помощью метода __call если когда-то и была - то осталась в прошлом. Большинство задач множественного наследования вполне можно решить с помощью трейтов и интерфейсов
Ответ написан
Комментировать
@neol
class Class1 {
    public function test1() {}
}

class Class2 {
    public function test2() {}
}

class Class3 extends Class1 {
    protected $parent;
    public function __construct() {
        $this->parent = new Class2();
    }
    
    public function __call(string $method_name, array $arguments) {
        return call_user_func([$this->parent, $method_name], $arguments);
    }
}

$example = new Class3();
$example->test2();

ИМХО такое решение лучше никогда не использовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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