Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Type dupliqué

<?php

class_alias('a', 'c');
use A as B;

// duplicate hidden type
function foo(array | iterable $b) {}

// d8plicate type
function foo2(a | b $b) {}

// a and c are always considered distinct
function foo3(a | c $b) {}

// PHP is smarter than this poor usage of DNF
function foo4((a & b) | (b & a) $b) {}

?>

Les types union vérifient les types dupliqués, donc array|array n’est pas possible, ni si une classe est aliasée avec une expression use : en revanche, cela est valide avec un alias de classe créé avec class_alias().

Le dernier cas est le type union qui masque réellement le type : ici, iterable inclut array, donc PHP se plaint d’un doublon qui n’est pas visible au premier regard.

Notez que les types d’intersection vérifient également les types dupliqués.

See Also

PHP Error Messages

PHP Features

Last updated: 11 October 2026