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");
?>
define("TAUX_TVA", 0.2);
define("SITE_NOM", "Mon super site");
?>
Ici :
TAUX_TVAest une constante numériqueSITE_NOMest 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
?>
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.";
}
?>
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
?>
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
?>
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