Les constantes en PHP
Une constante est un identifiant (un nom) pour une valeur simple. La valeur ne peut pas être modifiée pendant l'exécution du script. Par convention, les constantes sont toujours en majuscule.
Définir une constante
Deux syntaxes existent pour déclarer des constantes; soit la fonction define() , soit le mot-clef const qui ont toutefois quelques différences.
define()
- Définie à l'exécution du code, elle peut donc être conditionnée (if..)
- Vérification de l'existence de la constante grâce à
if(!defined('NOM')){…} - Types de valeurs autorisées: scalaires ou avec PHP7, des tableaux
- NOM_DE_LA_CONSTANTE peut être insensible à la casse grâce au troisième paramètre:
define('NOM', valeur, true); - Définie dans l'*espace de nom global *(pour l'ensemble du programme)
const
- Définie à la compilation (avant l'exécution du programme), elle NE peut PAS être conditionnée mais est plus rapide
- Types de valeurs autorisées: scalaires et tableaux avec (PHP5.6+)
- NOM_DE_LA_CONSTANTE sensible à la casse
- Définie dans l'espace de nom courant(namespace), ce qui limite les risques de conflits de noms
- Syntaxe plus lisible et identique pour les constantes de classes et d'interface
Warning
Par défaut, privilégiez const plutôt que define sauf s'il y a une dépendance de l'exécution
Les constantes magiques
PHP fournit également un certain nombre de constantes dites "magiques" qui changent en fonction de leur contexte d'utilisation. Voici quelques-unes des plus courantes :
__LINE__: Le numéro de la ligne courante dans le fichier.__FILE__: Le chemin complet et le nom du fichier.__DIR__: Le répertoire du fichier.__FUNCTION__: Le nom de la fonction.__CLASS__: Le nom de la classe.__METHOD__: Le nom de la méthode de classe.__NAMESPACE__: Le nom de l'espace de noms actuel.
<?php
echo "Ligne : " . __LINE__; // Affiche le numéro de la ligne courante
echo "Fichier : " . __FILE__; // Affiche le chemin complet du fichier
Bonnes pratiques
- Les noms de constantes sont généralement en majuscules.
- Utilisez des noms significatifs pour vos constantes.
- Évitez de redéfinir des constantes déjà définies.
- Regrouper les constantes dans le même fichier
Les constantes sont utiles pour définir des valeurs qui ne changent pas, comme des configurations ou des valeurs fixes, et permettent de rendre le code plus lisible et maintenable.