Wir haben bereits einige häufig verwendete magische Methoden kennengelernt. PHP bietet meiner Meinung nach auch einige magische Konstanten in der täglichen Arbeit.
Tatsächlich stellt PHP auch viele Konstanten bereit, aber alle basieren auf verschiedenen Erweiterungsbibliotheken. Einige Konstanten sind universell und liefern einige standortbezogene Informationen basierend auf dem Speicherort des Codes, an dem sie sich befinden * **.
Bei magischen Konstanten wird die Groß-/Kleinschreibung nicht beachtet, __LINE__ und __line__ sind gleich, aber für die technische Entwicklung sollten Konstanten so weit wie möglich in Großbuchstaben geschrieben werden.
__LINE__
Die aktuelle Zeilennummer in der Datei.
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__
Der vollständige Pfad und Dateiname der Datei. Bei Verwendung innerhalb einer eingebundenen Datei wird der Name der eingebundenen Datei zurückgegeben. Seit PHP 4.0.2 enthält __FILE__ immer einen absoluten Pfad (oder den aufgelösten absoluten Pfad im Fall eines symbolischen Links), während Versionen davor manchmal einen relativen Pfad enthielten.
echo __FILE__ . PHP_EOL; // D:\phpproject\php\newblog\php-magic-constant.php
__DIR__
Das Verzeichnis, in dem sich die Datei befindet. Bei Verwendung innerhalb einer eingebundenen Datei wird das Verzeichnis zurückgegeben, in dem sich die eingebundene Datei befindet. Es entspricht dirname(__FILE__). Verzeichnisnamen enthalten keinen abschließenden Schrägstrich, es sei denn, es handelt sich um das Stammverzeichnis. (Neu in PHP 5.3.0) =
echo __DIR__ . PHP_EOL; // D:\phpproject\php\newblog
__FUNCTION__
Funktionsname (Neu in PHP 4.3.0). Seit PHP 5 gibt diese Konstante den Namen der Funktion zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten). In PHP 4 ist dieser Wert immer kleingeschrieben.
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__
Der Name der Klasse (neu in PHP 4.3.0). Seit PHP 5 gibt diese Konstante den Namen der Klasse zurück, als sie definiert wurde (Groß-/Kleinschreibung beachten). In PHP 4 ist dieser Wert immer kleingeschrieben. Der Klassenname enthält den Bereich, in dem er deklariert ist (z. B. FooBar). Beachten Sie, dass __CLASS__ seit PHP 5.4 auch für Merkmale funktioniert. Bei Verwendung innerhalb einer Trait-Methode ist __CLASS__ der Name der Klasse, die die Trait-Methode aufruft.
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__
Name des Merkmals (neu in PHP 5.4.0). Seit PHP 5.4 gibt diese Konstante den Namen des Merkmals so zurück, wie es definiert wurde (Groß-/Kleinschreibung beachten). Der Merkmalsname enthält den Bereich, in dem er deklariert ist (z. B. 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__
Der Methodenname der Klasse (neu hinzugefügt in PHP 5.0.0). Gibt den Namen der Methode so zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten).
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__
Der Name des aktuellen Namespace (Groß-/Kleinschreibung beachten). Diese Konstante wird zur Kompilierungszeit definiert (neu in 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();
Vollständiger Code: https://github.com/zhangyue0503/php/blob/master/newblog/php-magic-constant.php
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind magische Konstanten in PHP? Was sind die magischen Konstanten? (Zusammenfassen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!