Union & Intersection Types

PHP 🟡 Mid

Définition

Union (A|B) accepte l'un OU l'autre type (PHP 8.0). Intersection (A&B) exige que la valeur implémente TOUS les types (PHP 8.1). PHP 8.2 permet de les combiner en forme normale disjonctive : (A&B)|null, l'intersection devant être entre parenthèses.

Analogie

Union : un billet accepte en euros OU en dollars. Intersection : un candidat qui parle français ET anglais.

Exemple de code

// Union (PHP 8.0)
function parse(string|int $input): string { }

// Intersection (PHP 8.1)
function save(Countable&Iterator $items): void { }

// DNF : intersection OU null (PHP 8.2)
function find((Countable&Iterator)|null $items): void { }

Cas d'usage

Pour exprimer des contraintes de type précises et réduire les erreurs a l'exécution.

Anti-pattern

Utiliser des unions trop larges (string|int|float|array|null) qui perdent tout intérêt de typage.
#core#interview#php8#php82

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre