PHP zmienne Magia
Każdy skrypt PHP, aby go uruchomić zapewnia szereg predefiniowanych stałych.
Jednak wiele stałe są zdefiniowane w różnych rozszerzeniach, a tylko załadowany, gdy pojawią się te rozszerzenia, lub załadowane dynamicznie, lub która została umieszczona w czasie kompilacji do niego.
Istnieje osiem magiczne stałych i ich wartości, ponieważ pozycja w kodzie zmianie ulega zmianie.
Na przykład __LINE__ wartość, na której jest on zależny od linii w skrypcie na decyzję. Te specjalne stałe są wielkości liter, co następuje:
__LINE__
Pliki w bieżącym numerem linii.
Przykład:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
Powyższy przykład wyjście jest:
这是第 “ 2 ” 行
__FILE__
Pełna ścieżka i nazwa pliku. Jeśli stosowane w plik włączone, a następnie powrócić do nazwy pliku, które należy uwzględnić.
Od PHP 4.0.2 r __ FILE__ zawsze zawiera ścieżki bezwzględnej (jeśli jest dowiązaniem symbolicznym, to jest ścieżka bezwzględna analizowany), w tej wersji poprzedniej czasem zawierać ścieżkę względną.
Przykład:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
Powyższy przykład wyjście jest:
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
Plik znajduje się w katalogu. Jeżeli są one zawarte w pliku, katalog jest zawarty w pliku jest zwracana.
Jest to równoważne dirname (__ FILE__). O ile nie jest to katalog główny lub nazwa katalogu nie zawiera ukośnik na końcu. (PHP 5.3.0 ADD)
Przykład:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
Powyższy przykład wyjście jest:
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
Nazwa funkcji (PHP 4.3.0 dodano). Od PHP stała ta zwraca nazwę funkcji, ponieważ został uznany za 5 przypadków (wielkość liter). W PHP 4 jego wartość jest zawsze małe litery.
Przykład:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
Powyższy przykład wyjście jest:
函数名为:test
__class__
Nazwa klasy (PHP 4.3.0 dodano). Od PHP stała ta zwraca nazwę klasy jest zdefiniowany jako czas od 5 (wielkość liter ma znaczenie).
W PHP 4 jego wartość jest zawsze małe litery. Nazwa klasy w tym rola obszaru, który jest zadeklarowanym (takich jak foo \ bar). Uwaga Począwszy od PHP 5.4 __class__ stanowi cechę również odgrywać pewną rolę. W przypadku zastosowania w metodach cechę, __ Sposób class__ cechą jest wywołanie nazwę klasy.
Przykład:
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
Powyższy przykład wyjście jest:
类名为:test 函数名为:_print
__TRAIT__
Cecha Nazwa (5.4.0 PHP dodano). Począwszy od PHP 5.4.0, PHP implementuje metody ponownego wykorzystania kodu, zwanych cech.
Cecha Nazwa w tym rola obszaru, który jest zadeklarowanym (takich jak foo \ bar).
Jest pokryta z klasy bazowej dziedziczy członkowie włożona SayWorld cechą w metodzie MyHelloWorld. MyHelloWorld zachowanie konsekwentne podejście zdefiniowane w klasie. Priorytetem jest obecna metoda w klasie nadpisuje metodę cechy, sposób i cechy obejmujące metodę klasy bazowej.
<?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(); ?>
Powyższy wyjście przykładzie:
Hello World!
__METHOD__
Metody klas (PHP 5.0.0 dodano). Metoda ta zwraca nazwę jak została ona zadeklarowana (wielkość liter ma znaczenie).
Przykład:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
Powyższy przykład wyjście jest:
函数名为:test
__NAMESPACE__
Nazwa bieżącej przestrzeni nazw (wielkość liter). Stała ta jest określona w czasie kompilacji (PHP 5.3.0 dodano).
Przykład:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
Powyższy przykład wyjście jest:
命名空间为:"MyProject"