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"