Syntaxe

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.

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. 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 :

  • Les constantes ne commencent pas par le signe ($).
  • Les constantes ne peuvent �tre d�finies qu'en utilisant la fonction define(), pas par simple assignement.
  • 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 #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 'Hello World';

echo 
CONSTANT;
?>

Voir aussi les constantes de classe.