Vous êtes sur la page 1sur 5

Dans cette leçon, nous allons définir ce que sont les constantes en PHP, présenter les

constantes magiques qui sont des constantes pré-définies ou internes au PHP et


apprendre à créer nos propres constantes.

Définition des constantes PHP


Une constante est un identifiant ou un nom qui représente une valeur simple. Les
constantes, tout comme les variables, vont donc être des conteneurs qui vont nous
servir à stocker une valeur.

Cependant, à la différence des variables, la valeur stockée dans une constante ne va


pas pouvoir être modifiée : elle va être « constante » (sauf dans le cas des constantes
magiques dont nous allons reparler plus tard).

Notez également que les constantes vont par défaut être toutes accessibles dans tout
le script : on va pouvoir les définir n’importe où dans le script et pouvoir y accéder
depuis n’importe quel autre endroit du script.

Notez de plus que par convention, les constantes seront toujours écrites en majuscules
pour bien les différencier des autres objets du langage PHP.

Créer ou définir une constante en PHP


Pour définir une constante en PHP, nous allons pouvoir utiliser la fonction define() ou
le mot clef const.

Pour créer une constante en utilisant define(), nous allons devoir passer le nom de la
constante que l’on souhaite créer et la valeur que doit stocker la constante en
arguments de cette fonction. Une fois qu’une constante est définie, elle ne peut jamais
être modifiée ni détruite.

Si vous souhaitez créer une constante en utilisant le mot clef const, alors vous devez
noter que seules des données de type string, integer, float, boolean et array (dans les
dernières versions de PHP) vont pouvoir être stockées dans notre constante.

En dehors de cela, le nom des constantes suit les mêmes règles que n’importe quel
nom en PHP, à savoir qu’il doit obligatoirement commencer par une lettre ou
éventuellement par un underscore. Notez également que par défaut le nom des
constantes est sensible à la casse mais cela ne devrait pas importer puisque vous
devriez toujours déclarer vos constantes en majuscules. De plus, à la différence des
variables, nous ne devrons pas préfixer le nom d’une constante avec le signe $.

Pour ensuite utiliser la valeur d’une constante ou l’afficher, il suffit d’appeler la


constante par son nom comme on en a l’habitude avec les variables.

<!DOCTYPE html>
<html>
<head>
<title>Cours PHP & MySQL</title>
<meta charset="utf-8">
<link rel="stylesheet" href="cours.css">
</head>
<body>
<h1>Titre principal</h1>
<?php
define('DIX', 10);
echo 'La constante DIX stocke la valeur ' .DIX;
?>
<p>Un paragraphe</p>
</body>
</html>
Les constantes prédéfinies et les constantes
magiques en PHP
Le PHP nous fournit également un certain nombre de constantes prédéfinies qui vont
généralement nous donner des informations de type « meta » comme la version de
PHP actuellement utilisée, le plus petit entier supporté par PHP, des constantes de
rapport d’erreur etc.

Ces constantes prédéfinies ne vont pas toujours être toutes disponibles car certaines
sont définies par des extensions PHP. Une extension PHP est une librairie (un ensemble
de feuilles de codes) qui permettent d’ajouter des fonctionnalités au PHP de base.

Parmi ces constantes prédéfinies, il y en a neuf qui vont retenir notre attention et qu’on
appelle des constantes « magiques ». Ces constantes se distinguent des autres puisque
leur valeur va changer en fonction de l’endroit dans le script où elles vont être utilisées.

Les constantes magiques sont reconnaissables par le fait que leur nom commence par
deux underscores et se termine de la même manière (excepté pour une). Ce sont les
suivantes :

Nom de la
Description
constante

__FILE__ Contient le chemin complet et le nom du fichier

__DIR__ Contient le nom du dossier dans lequel est le fichier

__LINE__ Contient le numéro de la ligne courante dans le fichier

Contient le nom de la fonction actuellement définie ou {closure} pour les


__FUNCTION__
fonctions anonymes

__CLASS__ Contient le nom de la classe actuellement définie


Nom de la
Description
constante

__METHOD__ Contient le nom de la méthode actuellement utilisée

__NAMESPACE__ Contient le nom de l’espace de noms (« namespace ») courant

Contient le nom du trait (incluant le nom de l’espace de noms dans lequel


__TRAIT__
il a été déclaré)

ClassName::class Contient le nom entièrement qualifié de la classe

Pour le moment, nous allons nous concentrer sur les quatre premières constantes
citées, car vous ne disposez pas encore de connaissances suffisantes pour bien
comprendre les quatre dernières.

<!DOCTYPE html>
<html>
<head>
<title>Cours PHP & MySQL</title>
<meta charset="utf-8">
<link rel="stylesheet" href="cours.css">
</head>
<body>
<h1>Titre principal</h1>
<?php
//Affiche le numéro de la ligne où la constante a été appelée (dans le code)
echo 'Numéro de ligne : ' .__LINE__. '<br>';
//Affiche le chemin du ficher et son nom
echo 'Chemin complet du fichier : ' .__FILE__. '<br>';
//Affiche le nom du dossier qui contient le fichier
echo 'Dossier contenant le fichier : ' .__DIR__. '<br>';
//Affiche à nouveau la ligne où la constante a été appelée
echo 'Numéro de ligne : ' .__LINE__. '<br>';
//Renvoie le nom de la fonction depuis laquelle la constante est appelée
function test(){
echo 'Constante appelée depuis la fonction ' .__FUNCTION__;
}
//Ne pas oublier d'exécuter la fonction pour qu'elle echo la valeur de la constante magique !
test();
?>
<p>Un paragraphe</p>
</body>
</html>

Les constantes magiques vont notamment être utiles pour récupérer des adresses de
fichiers et les utiliser dans des fichiers de configuration ou lors d’appels à nos bases de
données SQL ou encore pour effectuer des actions de débogage.

Vous aimerez peut-être aussi