Accueil > Développement > Programmation > Constantes magique du PHP

Constantes magique du PHP

Pas très utilisées et pourtant si pratique.

lundi 13 mars 2006, par Prélude

Voici quelques constantes Php qui ne sont pas très utilisées car très certainement méconnues et pourtant si pratique comme vous allez le voir.

Commençons par cette-ci :
__LINE__ : indique la ligne courante dans le fichier.

<? // voici un fichier exemple
echo ">Voici la ligne N°:".__LINE__;
// devrait afficher 2
?>

Cette constante (variable pourtant...) peu s’avérer très utile lors du debuggage de vos applications.
Le numéro de ligne correspond bien au numéro dans le fichier. Dans l’exemple ci-dessus, en admettant que le fichier soit inclus dans un autre à la ligne 10, le résultat restera le même, c’est à dire 2.

__FILE__ : Le chemin complet et le nom du fichier courant.

Au passage, les chemins d’accès sous Windows sont avec des "\" alors que sous Linux c’est "/". C’est toujours bon de le savoir si vous souhaitez réaliser des applications compatibles pouvant s’installer indépendamment de la plateforme, ou tout simplement si vous développez chez vous sous un système Windows et que le serveur de production est sous Linux.
Vous avez, depuis la version 4.0.6 de Php une constante DIRECTORY_SEPARATOR qui vous indique justement le séparateur utilisé. N’hésitez donc pas à l’utiliser.

__FUNCTION__ : le nom de de la fonction (à partir de Php 4.3.0)

<?
function test1() {
        echo "> : ".__FUNCTION__;
}
test1();
?>

Cet exemple affichera simplement > : test1.
Si vous affichez le contenu de cette constante alors que vous n’êtes pas dans une fonction, vous n’aurez rien.
Si vous vous trouvez dans une classe, ça ne change rien. Il faudra utiliser une autre constante pour connaître le nom de la classe courante.

__CLASS__ : le nom de la classe courante (à partir de Php 4.3.0)

<?
class MaClasse {
        var $dummy;
        function test() {
                echo "> : ".__CLASS__;
        }
}
$a = new MaClasse();
$a->test();
?>

Cet exemple affichera > : MaClasse.

__METHOD__ : le nom de la méthode courante (à partir de Php 5.0.0)

En reprenant l’exemple précédent, on aura > : MaClasse ::test.

Petite précision :

<?
echo "> : __FILE__";
?>

Affichera > : __FILE__.

Il faut, en effet, concaténer la chaîne de caractères pour afficher ces constantes :

<?
echo "> : ".__FILE__;
?>