Magia variabile PHP
Qualsiasi script PHP per eseguirlo fornisce una serie di costanti predefinite.
Tuttavia, molte costanti sono definite da varie estensioni, e caricate solo quando appariranno queste estensioni, o dinamicamente caricato, o è stato inserito al momento della compilazione in esso.
Ci sono otto costanti di magia ed i loro valori come cambiano posizione nel codice viene cambiato.
Per esempio __LINE__ valore su cui è dipendente dalla riga nello script per decidere. Queste costanti speciali sono case-insensitive, come segue:
__LINE__
I file in il numero di riga corrente.
esempio:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
L'output sopra esempio è:
这是第 “ 2 ” 行
__FILE__
Il percorso completo e il nome del file. Se utilizzato nel file incluso, per poi tornare il nome del file da includere.
Dal PHP 4.0.2 in poi, __ FILE__ contiene sempre un percorso assoluto (se si tratta di un link simbolico, si tratta di un percorso assoluto analizzato), e in questa versione precedente a volte contiene un percorso relativo.
esempio:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
L'output sopra esempio è:
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
file di catalogo si trova. Se incluso nel file, la directory è incluso nel file viene restituito.
E 'equivalente a dirname (__ FILE__). A meno che non è la directory root, o il nome di directory non include una barra alla fine. (PHP 5.3.0 add)
esempio:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
L'output sopra esempio è:
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
Nome funzione (PHP 4.3.0 aggiunto). Dal momento che PHP questa costante restituisce il nome della funzione come è stato dichiarato 5 casi (case-sensitive). In PHP 4 il suo valore è sempre in minuscolo.
esempio:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
L'output sopra esempio è:
函数名为:test
__CLASS__
Nome della classe (PHP 4.3.0 aggiunto). Dal momento che PHP questa costante restituisce il nome della classe è definito come il tempo da 5 (case-sensitive).
In PHP 4 il suo valore è sempre in minuscolo. Nome classe compreso il ruolo della zona che viene dichiarata (come Foo \ Bar). Nota da PHP 5.4 in poi __CLASS__ del tratto svolgono anche un ruolo. Quando utilizzato in modalità tratto, __ metodo class__ tratto è quello di chiamare il nome della classe.
esempio:
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
L'output sopra esempio è:
类名为:test 函数名为:_print
__TRAIT__
Nome Trait (PHP 5.4.0 aggiunto). A partire da PHP 5.4.0, PHP implementa un metodo di riutilizzo del codice, detti tratti.
Nome Tratto compreso il ruolo della zona che viene dichiarata (come Foo \ Bar).
È coperto dalla classe base eredita i membri inseriti SayWorld Trait nel metodo MyHelloWorld. comportamento MyHelloWorld approccio coerente definito nella classe. La priorità è il metodo corrente in una classe sovrascrive il metodo tratto, metodo e tratto che copre il metodo della classe base.
<?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(); ?>
È possibile che questo esempio di output volontà:
Hello World!
__METHOD__
I metodi per classi (PHP 5.0.0 aggiunto). Questo metodo restituisce il nome come è stato dichiarato (maiuscole e minuscole).
esempio:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
L'output sopra esempio è:
函数名为:test
__NAMESPACE__
Nome dello spazio dei nomi corrente (maiuscole e minuscole). Questa costante è definito al momento della compilazione (PHP 5.3.0 aggiunto).
esempio:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
L'output sopra esempio è:
命名空间为:"MyProject"