Les constantes

Sommaire

Une constante est un identifiant (un nom) qui représente une valeur simple. Comme son nom le suggère, cette valeur ne peut jamais être modifiée durant l'exécution du script (sauf les constantes magiques). Les constantes sont sensibles à la casse. Par convention, les constantes sont toujours en majuscule.

Note:

Antérieur à PHP 8.0.0, les constantes définies en utilisant la fonction define() peuvent être insensibles à la casse.

Les noms de constantes suivent les mêmes règles que n'importe quel nom en PHP. Un nom de constante valide commence par une lettre ou un souligné, suivi d'un nombre quelconque de lettres, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Il est possible de définir une constante avec un nom réservé ou même invalide via define(), ces valeurs ne peuvent alors être récupérées qu'avec la fonction constant(). Faire ceci n'est cependant pas recommandé.

Astuce

Jetez un oeil sur Guide de nommage de l'espace utilisateur.

Exemple #1 Noms valides et invalides pour les constantes

<?php
// Noms valides
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");

// Noms invalides
define("2FOO", "something");

// Ce nom est valide, mais évitez-le:
// PHP peut un jour fournir une constante magique nommée
// ainsi, ce qui va corrompre vos scripts.
define("__FOO__", "something");

?>

Note: Dans cette documentation, une lettre peut être un des caractères suivants : de a à z, de A à Z et tous les caractères ASCII de 128 à 255 (0x80-0xff).

Tout comme les superglobals, la portée d'une constante est globale. Les constantes peuvent être accédées depuis partout dans un script sans tenir compte de la portée. Pour plus d'informations sur la portée, lisez la section du manuel sur la portée des variables.

Note: À partir de PHP 7.1.0, les constantes de classes peuvent définir une visibilité de protégée ou privée, les rendant disponibles que dans la portée hiérarchique de la classe où elles ont été définies.

To Top