PHP Magische Konstanten

PHP stellt jedem Skript, das es ausführt, eine große Anzahl vordefinierter Konstanten zur Verfügung.

Viele Konstanten werden jedoch von verschiedenen Erweiterungsbibliotheken definiert und erscheinen erst, wenn diese Bibliotheken geladen sind – entweder nach dem dynamischen Laden oder wenn sie bereits zur Kompilierungszeit eingebunden wurden.

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

Zum Beispiel hängt der Wert von __LINE__ von der Zeile im Skript ab, in der er verwendet wird. Diese speziellen Konstanten sind unabhängig von der Groß-/Kleinschreibung, wie folgt:


__LINE__

Die aktuelle Zeilennummer in der Datei.

Beispiele

<?php echo 'Dies ist Zeile "' . __LINE__ . '"'; ?>

Die Ausgabe des obigen Beispiels ist:

这是第 “ 2 ” 行

__FILE__

Der vollständige Pfad und Dateiname der Datei. Wenn sie innerhalb einer eingebundenen Datei verwendet wird, wird der Name der eingebundenen Datei zurückgegeben.

Seit PHP 4.0.2 enthält __FILE__ immer einen absoluten Pfad (wenn es sich um einen symbolischen Link handelt, ist es der aufgelöste absolute Pfad), während es in Versionen davor manchmal einen relativen Pfad enthielt.

Beispiel:

Beispiele

<?php echo 'Die Datei befindet sich unter "' . __FILE__ . ' " '; ?>

Die Ausgabe des obigen Beispiels ist:

该文件位于 “ E:\wamp\www\test\index.php ”

__DIR__

Das Verzeichnis der Datei. Wenn sie in einer eingebundenen Datei verwendet wird, wird das Verzeichnis der eingebundenen Datei zurückgegeben.

Es ist äquivalent zu dirname(__FILE__). Sofern es sich nicht um das Stammverzeichnis handelt, enthält der Name keinen abschließenden Schrägstrich. (Hinzugefügt in PHP 5.3.0)

Beispiele

<?php echo 'Die Datei befindet sich unter "' . __DIR__ . ' " '; ?>

Die Ausgabe des obigen Beispiels ist:

该文件位于 “ E:\wamp\www\test ”

__FUNCTION__

Der Funktionsname (hinzugefügt in PHP 4.3.0). Ab PHP 5 gibt diese Konstante den Namen der Funktion zurück, wie sie definiert wurde (Groß-/Kleinschreibung wird unterschieden). In PHP 4 war der Wert immer in Kleinbuchstaben.

Beispiele

<?php function test() { echo 'Funktionsname:' . __FUNCTION__ ; } test(); ?>

Die Ausgabe des obigen Beispiels ist:

函数名为:test

__CLASS__

Der Klassenname (hinzugefügt in PHP 4.3.0). Ab PHP 5 gibt diese Konstante den Namen der Klasse zurück, wie sie definiert wurde (Groß-/Kleinschreibung wird beachtet).

In PHP 4 war der Wert immer kleingeschrieben. Der Klassenname enthält seinen deklarierten Gültigkeitsbereich (z. B. Foo\Bar). Beachten Sie, dass __CLASS__ ab PHP 5.4 auch mit Traits funktioniert. Wenn es in einer Trait-Methode verwendet wird, ist __CLASS__ der Name der Klasse, die die Trait-Methode aufruft.

Beispiele

<?php class test { function _print() { echo 'Klassenname:' . __CLASS__ . "<br>"; echo 'Funktionsname:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>

Die Ausgabe des obigen Beispiels ist:

类名为:test
函数名为:_print

__TRAIT__

Der Name des Traits (hinzugefügt in PHP 5.4.0). Ab PHP 5.4.0 implementiert PHP eine Methode zur Wiederverwendung von Code namens Traits.

Der Trait-Name umfasst seinen deklarierten Geltungsbereich (z. B. Foo\\Bar).

Von der Basisklasse geerbte Member werden durch die aus dem SayWorld-Trait eingefügte MyHelloWorld-Methode überschrieben. Ihr Verhalten entspricht der in der MyHelloWorld-Klasse definierten Methode. Die Prioritätsreihenfolge ist, dass Methoden in der aktuellen Klasse Trait-Methoden überschreiben und Trait-Methoden Methoden in der Basisklasse überschreiben.

Beispiele

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

Das obige Beispiel gibt Folgendes aus:

Hello World!

__METHOD__

Der Methodenname der Klasse (hinzugefügt in PHP 5.0.0). Gibt den Namen der Methode zurück, wie er definiert wurde (Groß-/Kleinschreibung wird beachtet).

Beispiel:

Beispiele

<?php function test() { echo 'Funktionsname:' . __METHOD__ ; } test(); ?>

Die Ausgabe des obigen Beispiels ist:

函数名为:test

__NAMESPACE__

Der Name des aktuellen Namespace (Groß-/Kleinschreibung beachtend). Diese Konstante wird zur Kompilierzeit definiert (hinzugefügt in PHP 5.3.0).

Beispiel:

Beispiele

<?php namespace MyProject; echo 'Der Namespace ist: "', __NAMESPACE__, '"'; //Gibt "MyProject" aus ?>

Die Ausgabe des obigen Beispiels ist:

命名空间为:"MyProject"
Andere Erweiterungen