Union & Intersection Types
PHP 🟡 MidDefinition
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.