never est uniquement un type de retour indiquant que la fonction ne se termine pas. Cela signifie qu'elle appelle exit(), lève une exception, ou est une boucle infinie. Elle ne peut donc pas faire partie d'une déclaration de type union. Disponible à partir de PHP 8.1.0.
Une instruction return dans une fonction never
est une erreur de compilation, même si ce return ne serait
pas atteint à l'exécution. Si le flux d'exécution atteint la fin d'une
fonction never sans quitter le script, sans lever d'exception
ni entrer dans une boucle infinie, une TypeError
est lancée.
never est, dans le langage de la théorie des types, le type vide, ce qui signifie qu'il est le sous-type de tous les autres types et qu'il peut remplacer n'importe quel autre type de retour lors de l'héritage.