Для чего __invoke()?

Ответ

__invoke() позволяет вызывать объект как функцию:

class Multiplier {
    public function __construct(private int $factor) {}

    public function __invoke(int $value): int {
        return $value * $this->factor;
    }
}

$double = new Multiplier(2);
echo $double(5);   // 10
echo $double(10);  // 20

// Можно передавать как callable
$result = array_map(new Multiplier(3), [1, 2, 3]); // [3, 6, 9]

Паттерн Single Action Class - класс с единственным действием: валидаторы, конвертеры, pipeline-шаги.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.