Heim  >  Artikel  >  Backend-Entwicklung  >  Verständnis und Anwendung relevanter Kenntnisse über magische PHP-Variablen

Verständnis und Anwendung relevanter Kenntnisse über magische PHP-Variablen

jacklove
jackloveOriginal
2018-05-07 11:16:341344Durchsuche

Magische PHP-Variablen spielen in PHP eine wichtige Rolle. In diesem Artikel werden sie ausführlich erläutert.

PHP stellt jedem ausgeführten Skript eine große Anzahl vordefinierter Konstanten zur Verfügung.

Viele Konstanten werden jedoch von verschiedenen Erweiterungsbibliotheken definiert und erscheinen nur, wenn diese Erweiterungsbibliotheken geladen werden, oder nach dem dynamischen Laden, oder wenn sie während der Kompilierung eingebunden wurden.

Es gibt acht magische Konstanten, deren Werte sich je nach Position im Code ändern.

Zum Beispiel hängt der Wert von __LINE__ von der Zeile ab, in der es sich im Skript befindet. Diese speziellen Konstanten unterscheiden nicht zwischen Groß- und Kleinschreibung und lauten wie folgt:

__LINE__

Die aktuelle Zeilennummer in der Datei.

Beispiel

9f64b4ffaa5eda79a1044e395ef2922c

Das Ausgabeergebnis des obigen Beispiels ist:

Dies ist der vollständige Pfad und Dateiname der Datei in Zeile „2“

__FILE__

. 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.

Instanz:

Instanz

e2cc2a81032abd12f3bd9397ca0d6250

Die obige Beispielausgabe Das Ergebnis ist:

Die Datei befindet sich in dem Verzeichnis, in dem sich die Datei „E:wampwwwtestindex.php“

__DIR__

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)

Beispiel

ca5e75a8c92cfc24141067605fb66f0d

Oben Beispiel Die Ausgabe lautet:

Die Datei befindet sich unter „E:wampwwwtest“

__FUNCTION__

Funktionsname (neu hinzugefügt 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.

Instanz

<?phpfunction test() {
    echo  &#39;函数名为:&#39; . __FUNCTION__ ;}test();?>

Das Ausgabeergebnis des obigen Beispiels ist:

Der Funktionsname ist: test

__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.

Instanz

<?phpclass test {
    function _print() {
        echo &#39;类名为:&#39;  . __CLASS__ . "<br>";        echo  &#39;函数名为:&#39; . __FUNCTION__ ;    }}$t = new test();$t->_print();?>

Das Ausgabeergebnis des obigen Beispiels ist:

Klassenname: test Funktionsname: _print

__TRAIT__

Eigenschaftsname (neu in PHP 5.4.0). Seit PHP 5.4.0 implementiert PHP eine Methode zur Code-Wiederverwendung namens Traits.

Der Merkmalsname enthält den Bereich, in dem er deklariert ist (z. B. FooBar).

Von der Basisklasse geerbte Mitglieder werden von der MyHelloWorld-Methode im eingefügten SayWorld-Merkmal überschrieben. Sein Verhalten stimmt mit den in der MyHelloWorld-Klasse definierten Methoden überein. Die Rangfolge besteht darin, dass Methoden in der aktuellen Klasse Merkmalsmethoden überschreiben, die wiederum Methoden in der Basisklasse überschreiben.

Instanz

<?phpclass Base {
    public function sayHello() {
        echo &#39;Hello &#39;;    }}
 trait SayWorld {
    public function sayHello() {
        parent::sayHello();        echo &#39;World!&#39;;    }}
 class MyHelloWorld extends Base {
    use SayWorld;}
 $o = new MyHelloWorld();$o->sayHello();?>

Die obige Routine gibt Folgendes aus:

Hallo Welt!

__METHOD__

Der Methodenname der Klasse (Neu in PHP 5.0.0). Gibt den Namen der Methode so zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten).

Instanz

<?phpfunction test() {
    echo  &#39;函数名为:&#39; . __METHOD__ ;}test();?>

Das Ausgabeergebnis des obigen Beispiels ist:

Funktionsname: test

__NAMESPACE__

Aktuell Namespace-Name (Groß-/Kleinschreibung beachten). Diese Konstante wird zur Kompilierungszeit definiert (neu in PHP 5.3.0).

Instanz:

Instanz

<?phpnamespace MyProject; 
echo &#39;命名空间为:"&#39;, __NAMESPACE__, &#39;"&#39;; // 输出 "MyProject"?>

Das Ausgabeergebnis des obigen Beispiels ist:

Der Namespace ist: „MyProject“

Dieser Artikel bietet ein detailliertes Verständnis der magischen Variablen von PHP. Weitere Lernmaterialien finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Was sind die Unterschiede zwischen PHP-Magic-Variablen __METHOD__ und __FUNCTION__

PHP-Magic-Variablen und Magic-Funktionsbeispiele Zusammenfassung von Tutorials

Ausführliche Erklärung der Verwendungsbeispiele für PHP-Magic-Variablen, detaillierte Erklärung der PHP-Magic-Beispiele_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonVerständnis und Anwendung relevanter Kenntnisse über magische PHP-Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn