Les constantes magiques en PHP

Les constantes magiques sont des constantes prédéfinies dans PHP qui se changent en fonction de leur contexte. Elles commencent par un double underscore (__) et se terminent par un double underscore (__).

Elles sont similaires aux autres constantes prédéfinies mais comme elles changent leurs valeurs selon le contexte, elles sont appelées constantes magiques.

Il y a 8 constantes magiques définies dans le tableau ci-dessous. Elles sont insensibles à la casse.
 
 

Nom
Description
__LINE__ Représente le numéro de la ligne courante là où il est utilisé.
__FILE__ Représente le chemin d’accès complet et le nom du fichier.
__DIR__ Représente le chemin complet du répertoire du fichier. Équivalent à dirname(__file__). Il n’a pas de Slash « / » à la fin, sauf s’il s’agit d’un répertoire racine.
__FUNCTION__ Représente le nom de la fonction là où elle est utilisée.
__CLASS__ Représente le nom de la classe là où elle est utilisé.
__TRAIT__ Représente le nom du trait là où il est utilisé.
__METHOD__ Représente le nom de la méthode du classe là où elle est utilisée. Le nom de la méthode est retourné tel qu’il a été déclaré.
__NAMESPACE__ Représente le namespace actuel.

Regardons quelques exemples pour chacune des constantes magiques ci-dessus.
 

__LINE__
<?php
	echo "Numéro de ligne " . __LINE__ . "<br>"; // Numéro de ligne 2
	echo "Numéro de ligne " . __LINE__ . "<br>"; // Numéro de ligne 3
	echo "Numéro de ligne " . __LINE__ . "<br>"; // Numéro de ligne 4
?>

La sortie :

Numéro de ligne 2
Numéro de ligne 3
Numéro de ligne 4

 

__FILE__
<?php
	// Affiche le chemin absolu de ce fichier
	echo "Le chemin absolu de ce fichier est: " . __FILE__; 
?>

La sortie :

Le chemin absolu de ce fichier est: C:/windows/users/wamp/www/test.php

 

__DIR__
<?php
	// Affiche le répertoire de ce fichier
	echo "Le répertoire de ce fichier est: " . __DIR__;
?>

La sortie :

Le répertoire de ce fichier est: C:/windows/users/wamp/www

 
 

__FUNCTION__
<?php
	function testFunction(){
		echo  "Le nom de la fonction est : " . __FUNCTION__;
	}

	testFunction(); 
?>

La sortie :

Le nom de la fonction est : testFunction

 

__CLASS__
<?php
	class maClasse
	{
		public function getClassName(){
			return __CLASS__;
		}
	}

	$c = new maClasse();
	echo $c->getClassName(); 
?>

La sortie :

maClasse

 

__METHOD__
<?php
	class maClasse
	{
		public function methodName(){
			echo __METHOD__;
		}
	}

	$c = new maClasse();
	$c->methodName(); 
?>

La sortie :

maClasse::methodName

 

__NAMESPACE__
<?php
	namespace MonEspaceDeNom;
	
	class maClasse
	{
		public function getNamespace(){
			return __NAMESPACE__;
		}
	}
	
	$c = new maClasse();
	echo $c->getNamespace();
?>

La sortie :

MonEspaceDeNom

 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *