Académique Documents
Professionnel Documents
Culture Documents
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.
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 $.
<!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
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.