Vous pouvez définir une constante en utilisant la fonction define() ou en utilisant le mot-clé const en dehors d'une définition de classe à partir de PHP 5.3.0. Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.
En PHP 5.5 et antérieurs, 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). Avec PHP 5.6 et suivants, il est possible de définir une constante comme une expression scalaire, il est également possible de définir une constante de type tableau. Il est possible de définir des constantes en tant que resource, mais cet usage est déconseillé, car il peut mener à des résultats inattendus.
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 souhaitez 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 :
Exemple #1 Définir une constante
<?php
define("CONSTANTE", "Bonjour le monde.");
echo CONSTANTE; // affiche "Bonjour le monde."
echo Constante; // affiche "Constante" et une notice.
?>
Exemple #2 Définir des constantes en utilisant le mot-clé const
<?php
// Fonctionne depuis PHP 5.3.0
const CONSTANT = 'Bonjour le monde !';
echo CONSTANT;
// Fonctionne depuis PHP 5.6.0
const ANOTHER_CONST = CONSTANT.'; Aurevoir le monde !';
echo ANOTHER_CONST;
const ANIMALS = array('chien', 'chat', 'oiseaux');
echo ANIMALS[1]; // affiche "chat"
// Fonctione depuis PHP 7
define('ANIMALS', array(
'chien',
'chat',
'oiseaux'
));
echo ANIMALS[1]; // affiche "chat"
?>
Note:
Contrairement aux constantes définies en utilisant l'instruction define(), les constantes définies en utilisant le mot-clé const doivent être déclarées au plus haut niveau du contexte, car elles seront définies au moment de la compilation. Cela signifie qu'elles ne peuvent être déclarées à l'intérieur de fonctions, boucles, instructions if ou blocs try/catch.
Voir aussi les constantes de classe.