Aller au contenu

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()

<?php
define("NOM_DE_LA_CONSTANTE", valeur);
  • 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)
<?php
define("PI", 3.14);
echo PI; // Affiche 3.14

const

<?php
const NOM_DE_LA_CONSTANTE = valeur;
  • 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
<?php
const PI = 3.14;
echo PI; // Affiche 3.14

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.