Chapitre 8. Les constantes

PHP définit un certain nombre de constantes et propose des mécanismes pour en définir d'autres durant l'exécution. Les constantes se comportent des variables, à l'exception du fait que leur valeur est définie grâce à la fonction define(), et qu'elle ne peut pas être modifiée par la suite.

Les constantes prédéfinies (toujours disponibles) sont :

__FILE__

Le nom du fichier qui est actuellement exécuté. Si cette constante est utilisée dans le cadre d'un fichier "inclus" (aprè utilisation de require()), alors le nom du fichier inclus est renvoyé, et non le nom du fichier parent.

__LINE__

Le numéro de la ligne qui est actuellement exécutée. Si cette constante est utilisée dans le cadre d'un fichier "inclus" (aprè utilisation de require()), c'est la position dans le fichier inclus qui est renvoyé.

PHP_VERSION

La chaîne de caractères de présentation de la version du PHP qui est actuellement utilisée. Par exemple '4.0.0'.

PHP_OS

Nom du système d'exploitation qui est utilisé par la machine qui fait tourner le PHP. Par exemple, 'Linux'.

TRUE

La valeur vraie booléenne, TRUE.

FALSE

La valeur faux booléenne, FALSE.

E_ERROR

Dénote une erreur autre qu'une erreur d'analyse ("parse error") qu'il n'est pas possible de corriger.

E_WARNING

Dénote un contexte dans lequel le PHP trouve que quelque chose qui ne va pas. Mais l'exécution se poursuit tout de même. Ces alertes-là peuvent être récupérées par le script lui-même. Un exemple serait une expression régulière (regexp) invalide dans la fonction ereg().

E_PARSE

L'analyseur a rencontré une forme syntaxique invalide dans le script. Correction de l'erreur impossible.

E_NOTICE

Quelque chose s'est produit, qui peut être ou non une erreur. L'exécution continue. Par exemple, le cas de guillemets doubles (") non refermés, ou bien la tentative d'accéder à une variable qui n'est pas encore affectée.

E_ALL

Toutes les constantes E_* rassemblées en une seule. Si vous l'utilisez avec error_reporting(), toutes les erreurs et les problèmes que PHP rencontrera seront notifiés.

Les constantes E_* sont généralement utilisées avec la fonction error_reporting().

Vous pouvez définir d'autres constantes en utilisant la fonction define().

Il est à noter que ce sont des constantes, et non pas des macros comme en C. Seulement les données scalaires peuvent être représentées par des constantes.

Exemple 8-1. Définition de constantes


<?php
define("CONSTANTE", "Bonjour le monde.");
echo CONSTANTE;
// affiche "Bonjourle monde."
?>
     

Exemple 8-2. Utilisation des constantes __FILE__ et __LINE__


<?php
function rapport_erreur($file, $line, $message) {
    echo "Une erreur est survenue dans le fichier $file à la ligne $line: $message.";
}
rapport_erreur(__FILE__,__LINE__, "Y a un problème!");
?>