Variables externes à PHP
Constantes magiques
Référence du langage
PHP Manual

# Les constantes

## Sommaire

- Constantes magiques

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 (les constantes magiques `__FILE__` et `__LINE__` sont les seules exceptions). Le nom d'une constante est sensible à la casse, par défaut. Par convention, les constantes sont toujours en majuscules.

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 lettre, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Astuce

Vous pourriez également avoir besoin de jeter 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 127 à 255 (0x7f-0xff).

Tout comme les superglobals, les constantes sont accessibles de manière globale. Vous pouvez la définir n'importe où, et y accéder depuis n'importe quelle fonction. Pour plus d'informations sur le contexte, lisez la section du manuel sur les variables de contexte.

## Syntaxe

Vous pouvez définir une constante en utilisant la fonction define(). Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

Seuls les types de données scalaires peuvent être placés dans une constante : c'est à dire les types booléen, entier, double et chaîne de caractères (soit bool, entier, double et string). Les constantes de type resource ne peuvent pas être définies.

Vous pouvez accéder à la valeur d'une constante en spécifiant simplement son nom. Contrairement aux variables, vous ne devez PAS préfixer le nom de la constante avec $. Vous pouvez aussi utiliser la fonction constant(), pour lire dynamiquement la valeur d'une constante, dont vous obtenez le nom dynamiquement (retour de fonction, par exemple). Utilisez la fonction get_defined_constants() pour connaître la liste de toutes les constantes définies.

> Note: Les constantes et les variables globales utilisent deux espaces de noms différents. Ce qui implique que `TRUE` et $TRUE sont généralement différents (en tous cas, ils peuvent avoir des valeurs différentes).

Si vous utilisez une constante non définie, PHP considère que vous uniquement le nom de la constante elle-même, comme si vous l'appeliez comme étant une chaîne de caractères (CONSTANT vs "CONSTANT"). Une alerte de type E_NOTICE sera émise lorsque ce cas se produit. Lisez également l'entrée du manuel qui explique pourquoi $foo[bar] est faux (tant que vous ne définissez pas bar comme étant une constante). Si vous voulez simplement vérifier qu'une constante est définie, utilisez la fonction defined().

Il y a des différences entre les constantes et les variables :

- Les constantes ne commencent pas par le signe ($);
- Les constantes sont définies et accessibles à tout endroit du code, globalement.
- Les constantes ne peuvent pas être redéfinies ou indéfinies une fois qu'elles ont été définies.
- Les constantes ne peuvent contenir que des scalaires.

Exemple #2 Définir une constante

`<?php
define("CONSTANTE", "Bonjour le monde.");
echo CONSTANTE; // affiche "Bonjour le monde."
echo Constante; // affiche "Constante" et une note.
?>`

Voir aussi les constantes de classe.

Variables externes à PHP
Constantes magiques
Référence du langage
PHP Manual