PHP Constantes magiques
PHP fournit un grand nombre de constantes prédéfinies à tout script qu'il exécute.
Cependant, de nombreuses constantes sont définies par différentes bibliothèques d'extension et n'apparaissent que lorsque ces bibliothèques sont chargées, soit après un chargement dynamique, soit lorsqu'elles ont déjà été incluses au moment de la compilation.
Il existe huit constantes magiques dont les valeurs changent selon leur position dans le code.
Par exemple, la valeur de __LINE__ dépend de la ligne du script où elle est utilisée. Ces constantes spéciales ne sont pas sensibles à la casse, comme suit :
__LINE__
Le numéro de ligne actuel dans le fichier.
Exemples
La sortie de l'exemple ci-dessus est :
这是第 “ 2 ” 行
__FILE__
Le chemin complet et le nom du fichier. Si cette constante est utilisée dans un fichier inclus, le nom du fichier inclus est renvoyé.
À partir de PHP 4.0.2, __FILE__ contient toujours un chemin absolu (s'il s'agit d'un lien symbolique, il s'agit du chemin absolu résolu), tandis que dans les versions antérieures, il contenait parfois un chemin relatif.
Exemple :
Exemples
La sortie de l'exemple ci-dessus est :
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
Le répertoire du fichier. Si cette constante est utilisée dans un fichier inclus, le répertoire du fichier inclus est renvoyé.
Elle est équivalente à dirname(__FILE__). Sauf s'il s'agit du répertoire racine, le nom n'inclut pas de barre oblique finale. (Ajouté dans PHP 5.3.0)
Exemples
La sortie de l'exemple ci-dessus est :
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
Le nom de la fonction (ajouté dans PHP 4.3.0). À partir de PHP 5, cette constante renvoie le nom de la fonction tel qu'il était défini (sensible à la casse). Dans PHP 4, la valeur était toujours en minuscules.
Exemples
La sortie de l'exemple ci-dessus est :
函数名为:test
__CLASS__
Le nom de la classe (ajouté dans PHP 4.3.0). Depuis PHP 5, cette constante retourne le nom de la classe telle qu'elle a été définie (sensible à la casse).
En PHP 4, la valeur était toujours en minuscules. Le nom de la classe inclut sa portée déclarée (par ex., Foo\Bar). Notez qu'à partir de PHP 5.4, __CLASS__ fonctionne également avec les traits. Lorsqu'elle est utilisée dans une méthode de trait, __CLASS__ est le nom de la classe qui appelle la méthode du trait.
Exemples
La sortie de l'exemple ci-dessus est :
类名为:test 函数名为:_print
__TRAIT__
Le nom du Trait (ajouté dans PHP 5.4.0). Depuis PHP 5.4.0, PHP implémente une méthode de réutilisation de code appelée traits.
Le nom du trait inclut sa portée déclarée (par ex., Foo\\Bar).
Les membres hérités de la classe de base sont redéfinis par la méthode MyHelloWorld insérée depuis le trait SayWorld. Son comportement est cohérent avec la méthode définie dans la classe MyHelloWorld. L'ordre de priorité est le suivant : les méthodes de la classe actuelle remplacent les méthodes du trait, et les méthodes du trait remplacent les méthodes de la classe de base.
Exemples
L'exemple ci-dessus affichera :
Hello World!
__METHOD__
Le nom de la méthode de la classe (ajouté dans PHP 5.0.0). Renvoie le nom de la méthode tel qu'il a été défini (sensible à la casse).
Exemple :
Exemples
La sortie de l'exemple ci-dessus est :
函数名为:test
__NAMESPACE__
Le nom de l'espace de noms actuel (sensible à la casse). Cette constante est définie au moment de la compilation (ajoutée dans PHP 5.3.0).
Exemple :
Exemples
La sortie de l'exemple ci-dessus est :
命名空间为:"MyProject"Autres extensions