<learndojo />
← Продвинутые возможности PHP
Выбрать правильный код1 баллов

Делегирование через __call()

Что выведет делегирование Writer?

<?php
class Writer
{
    public function writeName(Person $person): string
    {
        return $person->getName();
    }
}

class Person
{
    public function __construct(private Writer $writer) {}

    public function __call(string $method, array $args): mixed
    {
        return method_exists($this->writer, $method)
            ? $this->writer->$method($this)
            : null;
    }

    public function getName(): string
    {
        return 'Alice';
    }
}

echo (new Person(new Writer()))->writeName();
Подсказки
  • __call() передаёт неизвестный вызов объекту Writer.
Что проверяет это задание

__call() передаёт неизвестный вызов объекту Writer.