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

Types multiples de constantes

<?php

class x {
    const int|string A=1, B='abc';
	const int|string C = PHP_OS === 'win' ? 0 : 'not win';
}


echo strlen(x::B);

Les constantes de classe peuvent être typées depuis PHP 8.3. Les types union sont possibles, et ils sont valides avec les constantes de classe.

Dans le premier cas, deux constantes sont déclarées avec des types différents. PHP se plaint si l’un des types ne s’applique pas aux valeurs, donc le type union est nécessaire pour s’assurer que les deux constantes sont bien déclarées. Elles doivent évidemment être déclarées sur des expressions const distinctes.

Dans le second cas, la constante est définie avec une condition. Désormais, rand() ne peut pas être appelé dans cette partie du code, mais l’utilisation d’autres constantes, natives comme PHP_OS, __FILE__, personnalisées, globales ou définies avec define() peut influencer l’expression et conduire à des résultats et des types différents. Il s’agit d’un cas théorique qui n’a jamais été observé en pratique.

See Also

PHP Error Messages

PHP Features

Last updated: 04 October 2026