Nous avons déjà découvert certaines méthodes magiques couramment utilisées. En plus des méthodes magiques, PHP fournit également des constantes magiques. Je pense que tout le monde les a utilisées dans son travail quotidien.
En fait, PHP fournit également de nombreuses constantes, mais elles s'appuient toutes sur diverses bibliothèques d'extensions. Plusieurs constantes sont universelles et fournissent des informations liées à l'emplacement en fonction de l'emplacement du code où elles se trouvent. Ce sont des ***constantes magiques. * **.
Les constantes magiques ne sont pas sensibles à la casse, __LINE__ et __line__ sont identiques, mais pour le développement technique, les constantes doivent être autant que possible en lettres majuscules.
__LINE__
Le numéro de ligne actuel dans le fichier.
echo __LINE__ . PHP_EOL; // 3 function testLine() { echo __LINE__ . PHP_EOL; // 7 } class TestLineClass { function testLine() { echo __LINE__ . PHP_EOL; // 14 } } testLine(); $test = new TestLineClass(); $test->testLine();
__FILE__
Le chemin complet et le nom du fichier. S'il est utilisé dans un fichier inclus, renvoie le nom du fichier inclus. Depuis PHP 4.0.2, __FILE__ contient toujours un chemin absolu (ou le chemin absolu résolu dans le cas d'un lien symbolique), alors que les versions antérieures contenaient parfois un chemin relatif.
echo __FILE__ . PHP_EOL; // D:\phpproject\php\newblog\php-magic-constant.php
__DIR__
Le répertoire où se trouve le fichier. S'il est utilisé dans un fichier inclus, renvoie le répertoire où se trouve le fichier inclus. C'est équivalent à dirname(__FILE__). Les noms de répertoire n'incluent pas la barre oblique finale, sauf s'il s'agit du répertoire racine. (Nouveau en PHP 5.3.0) =
echo __DIR__ . PHP_EOL; // D:\phpproject\php\newblog
__FUNCTION__
Nom de la fonction (Nouveau en PHP 4.3.0). Depuis PHP 5, cette constante renvoie le nom de la fonction telle qu'elle a été définie (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule.
echo __FUNCTION__ . PHP_EOL; // 啥都没输出 function testFunction() { echo __FUNCTION__ . PHP_EOL; // testFunction } class TestFunctionClass { function testFunction1() { echo __FUNCTION__ . PHP_EOL; // testFunction1 } } testFunction(); $test = new TestFunctionClass(); $test->testFunction1();
__CLASS__
Le nom de la classe (nouveau en PHP 4.3.0). Depuis PHP 5, cette constante renvoie le nom de la classe lors de sa définition (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule. Le nom de la classe inclut la portée dans laquelle elle est déclarée (par exemple FooBar). Notez que depuis PHP 5.4, __CLASS__ fonctionne également pour les traits. Lorsqu'il est utilisé dans une méthode de trait, __CLASS__ est le nom de la classe qui appelle la méthode de trait.
echo __CLASS__ . PHP_EOL; // 什么也没有 function testClass() { echo __CLASS__ . PHP_EOL; // 什么也没有 } trait TestClassTrait { function testClass2() { echo __CLASS__ . PHP_EOL; // TestClassClass } } class TestClassClass { use TestClassTrait; function testClass1() { echo __CLASS__ . PHP_EOL; // TestClassClass } } testClass(); $test = new TestClassClass(); $test->testClass1(); $test->testClass2();
__TRAIT__
Nom du trait (nouveau en PHP 5.4.0). Depuis PHP 5.4, cette constante renvoie le nom du trait tel qu'il a été défini (sensible à la casse). Le nom du trait inclut la portée dans laquelle il est déclaré (par exemple FooBar).
echo __TRAIT__ . PHP_EOL; // 什么也没有 function testTrait() { echo __TRAIT__ . PHP_EOL; // 什么也没有 } trait TestTrait { function testTrait2() { echo __TRAIT__ . PHP_EOL; // TestTrait } } class TestTraitClass { use TestTrait; function testTrait1() { echo __TRAIT__ . PHP_EOL; // 什么也没有 } } testTrait(); $test = new TestTraitClass(); $test->testTrait1(); $test->testTrait2();
__METHOD__
Le nom de la méthode de la classe (récemment ajouté dans PHP 5.0.0). Renvoie le nom de la méthode telle qu'elle a été définie (sensible à la casse).
echo __METHOD__ . PHP_EOL; // 什么也没有 function testMethod() { echo __METHOD__ . PHP_EOL; // testMethod } class TestMethodClass { function testMethod1() { echo __METHOD__ . PHP_EOL; // TestMethodClass::testMethod1 } } testMethod(); $test = new TestMethodClass(); $test->testMethod1();
__NAMESPACE__
Le nom de l'espace de noms actuel (sensible à la casse). Cette constante est définie au moment de la compilation (nouveauté PHP 5.3.0).
echo __NAMESPACE__ . PHP_EOL; // test\magic\constant class TestNameSpaceClass { function testNamespace() { echo __NAMESPACE__ . PHP_EOL; // test\magic\constant } } $test = new TestNameSpaceClass(); $test->testNamespace();
Code complet : https://github.com/zhangyue0503/php/blob/master/newblog/php-magic-constant.php
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!