Chapitre 5 : Constantes

Découvrez comment utiliser les constantes en PHP pour stocker des valeurs fixes comme des configurations ou des chemins d'accès.

1. Qu'est-ce qu'une constante ?

Une constante est une donnée dont la valeur ne peut pas changer au cours de l'exécution du script. Contrairement à une variable, une constante :

  • n'est pas précédée du signe $
  • ne peut être définie qu'une seule fois
  • est accessible globalement, même dans une fonction

2. Déclaration d'une constante

En PHP, une constante se définit avec la fonction define() :

<?php
  define("TAUX_TVA", 0.2);
  define("SITE_NOM", "Mon super site");
?>

Ici :

  • TAUX_TVA est une constante numérique
  • SITE_NOM est une constante contenant une chaîne de caractères
Remarque : Par convention, le nom d'une constante est écrit en lettres majuscules avec des underscores (_) pour séparer les mots.

3. Afficher une constante

On affiche une constante comme une variable, mais sans le $ :

<?php
  define("SITE_NOM", "PHP pour Débutants");
  echo SITE_NOM; // Affiche : PHP pour Débutants
?>

4. Vérifier l'existence d'une constante

Pour tester si une constante a été définie, on utilise defined() :

<?php
  if (defined("SITE_NOM")) {
    echo SITE_NOM;
  } else {
    echo "Constante non définie.";
  }
?>

5. Constantes sensibles à la casse ?

Par défaut, une constante est sensible à la casse :

<?php
  define("COULEUR", "Bleu");

  echo COULEUR; // OK
  echo couleur; // Erreur : non définie
?>
Depuis PHP 8.0, il n'est plus possible de créer des constantes insensibles à la casse (anciennement possible via un 3e argument dans define).

6. Les constantes magiques

PHP fournit également des constantes magiques très utiles. Elles changent selon le contexte :

Constante magique Description
__LINE__ Numéro de ligne en cours
__FILE__ Chemin complet du fichier en cours
__DIR__ Dossier du fichier
__FUNCTION__ Nom de la fonction courante
__CLASS__ Nom de la classe courante
<?php
  echo __FILE__; // Affiche le chemin du fichier PHP
?>

7. Constantes vs Variables

Caractéristique Variable Constante
Signe devant le nom $ Aucun
Peut être modifiée Oui Non
Portée globale Non (sauf avec global) Oui

8. À retenir

  • Une constante est une valeur fixe, définie une seule fois, grâce à define()
  • Elle ne commence pas par $ et est accessible globalement
  • Son nom est sensible à la casse et écrit en majuscules par convention
  • PHP fournit aussi des constantes magiques utiles
  • Contrairement aux variables, une constante ne peut jamais être modifiée