Union & Intersection Types

PHP 🟡 Mid

Definition

Union (A|B) accepte l'un OU l'autre type (PHP 8.0). Intersection (A&B) exige que la valeur implemente TOUS les types (PHP 8.1). Renforce le typage statique.

Analogie

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

Exemple de code

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

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

Cas d'usage

Pour exprimer des contraintes de type precises et reduire les erreurs a l'execution.

Anti-pattern

Utiliser des unions trop larges (string|int|float|array|null) qui perdent tout interet de typage.
#core#interview#php8