En programmation, il est souvent nécessaire de définir des structures de données dont la valeur ne doit pas changer au cours de l'exécution du programme. Ces structures de données sont typiquement ce que l'on appelle des constantes. La plus connue des constantes mathématiques est par exemple le nombre PI dont la valeur est approximativement 3.1415926535898. Notons que PHP intègre nativement la constante M_PI. Celle-ci pourra alors être utilisée pour tout calcul de circonférence par exemple. Commençons par étudier comment on déclare une constante dans un programme PHP.
La déclaration de constante se prépare au moyen de la fonction native define() qui prend trois paramètres dont les deux premiers sont obligatoires. Voici le détail de la documentation officielle de la fonction define() :
Prototype de la fonction define()
bool define ( string $name, mixed $value [, bool $case_insensitive] )
Nous conseillons de ne jamais renseigner ce troisième argument afin d'imposer une rigueur dans l'écriture du code. Les deux premiers obligatoires suffisent. Passons à la déclaration de notre première constante.
Comme tout le monde le sait (ou presque), l'eau bout à une température de 100°C (en théorie). Nous allons donc déclarer une première constante de nom TEMPERATURE_EBULLITION_EAU et qui renferme une information numérique de valeur 100.
Déclaration d'une constante
<?php
// Déclaration de la constante
define('TEMPERATURE_EBULLITION_EAU',100);
// Affichage de sa valeur
echo 'L\'eau bout à ', TEMPERATURE_EBULLITION_EAU ,'°C';
?>
Si l'on teste ce script, on constate que la chaîne de caractères « L'eau bout à 100°C » s'affiche correctement à l'écran, ce qui prouve que la constante a bien été déclarée et initialisée à la bonne valeur.
Notes :
[1] A la déclaration, si la valeur est un nombre, on l'inscrit telle qu'elle dans la fonction.
[2] Pour lire la valeur d'une constante, il suffit de l’appeler par son nom.
D'un point de vue chimique, l'eau est aussi une molécule constituée de deux atomes d'hydrogène auxquels sont associés un atome d'oxygène. Sa formule chimique s'écrit donc H2O. Nous allons donc créer une nouvelle constante de nom FORMULE_EAU représentant une chaîne de caractères de valeur H2O.
Déclaration d'une nouvelle constante
<?php
// Déclaration de la constante
define('FORMULE_EAU','H2O');
// Affichage de sa valeur
echo 'Formule chimique de l\'eau : ', FORMULE_EAU;
?>
Note : à la déclaration, si la valeur est une chaîne de caractères, il faut l'entourer d'apostrophes ou de guillemets doubles.
La valeur d'une constante ne peut être redéfinie ! Des erreurs de syntaxe seront retournées en cas de tentative de redéfinition de constante ou d'affectation d'une nouvelle valeur. Les deux scripts suivants présentent respectivement ces deux cas.
Erreurs générées en cas de redéfinition d'une constante
[Erreur générée] Notice: Constant TEMPERATURE_EBULLITION_EAU already defined in /Applications/MAMP/htdocs/Tests-PHP/constante.php on line 6
[Erreur générée] Parse error: syntax error, unexpected '=' in /Applications/MAMP/htdocs/Tests-PHP/xml.php on line 6
Notons le signe = permettant l'affectation d'une valeur à une variable et non une constante. Pour plus d'information sur les variables, nous vous invitons à lire le tutoriel au sujet des variables.
Au terme de ce tutoriel, nous avons défini ce qu'est une constante et à quoi elle sert dans un programme informatique. De plus, nous avons présenté la fonction define() qui permet de déclarer des constantes. Enfin nous avons appris à lire le contenu d'une constante en l’appelant par son nom. Nous sommes prêts pour passer au tutoriel suivant concernant les variables, le pendant des constantes.