Что такое Intersection Types?

Ответ
// Intersection type (PHP 8.1): объект должен реализовать ВСЕ типы
function process(Countable&Iterator $collection): void {
    echo count($collection);
    foreach ($collection as $item) { /* ... */ }
}

// DNF types (PHP 8.2): комбинация union и intersection
function handle((Countable&Iterator)|null $data): void { /* ... */ }

// Практический пример
interface Cacheable {}
interface Serializable {}

function store(Cacheable&Serializable $item): void {
    // $item гарантированно реализует оба интерфейса
}

Intersection types полезны когда нужно требовать реализацию нескольких интерфейсов без создания промежуточного интерфейса.

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