Pembolehubah ajaib PHP
PHP menyediakan sejumlah besar pemalar pratakrif kepada mana-mana skrip yang dijalankannya.
Walau bagaimanapun, banyak pemalar ditakrifkan oleh perpustakaan sambungan yang berbeza dan hanya akan muncul apabila perpustakaan sambungan ini dimuatkan, atau selepas pemuatan dinamik, atau telah disertakan semasa penyusunan.
Terdapat lapan pemalar ajaib yang nilainya berubah bergantung pada kedudukannya dalam kod.
| Nombor baris semasa dalam fail. | ||||||||||
? > ?>?> ?>?> ?>?> ?>?> __FAIL__?> | < td width="193" valign="top" style="border-width: 1px; border-style: solid; word-break: break-all;">?>Laluan penuh dan nama fail fail. Jika digunakan dalam fail yang disertakan, mengembalikan nama fail yang disertakan. ?>Memandangkan PHP 4.0.2, __FILE__ sentiasa mengandungi laluan mutlak (atau laluan mutlak yang diselesaikan dalam kes pautan simbolik), manakala versi sebelum itu kadangkala mengandungi laluan relatif. |||||||||||
? > ?>?> ?>?> ?>?> __DIR__?> | ?>Direktori tempat fail terletak. Jika digunakan dalam fail yang disertakan, mengembalikan direktori tempat fail yang disertakan berada. ?>?>Ia bersamaan dengan dirname(__FILE__). Nama direktori tidak termasuk garis miring mengekor melainkan ia adalah direktori akar. (Baharu dalam PHP 5.3.0) ?> | ||||||||||
?> ?>?> ?>?> __FUNCTION__?> | Nama fungsi (baru ditambah dalam PHP 4.3.0). Memandangkan PHP 5 pemalar ini mengembalikan nama fungsi seperti yang ditakrifkan (sensitif huruf besar-besaran). Dalam PHP 4 nilai ini sentiasa huruf kecil. | ||||||||||
? > ?>?> __CLASS__ ?> | Nama kelas (baharu dalam PHP 4.3.0). Sejak PHP 5, pemalar ini mengembalikan nama kelas apabila ia ditakrifkan (sensitif huruf besar-kecil) |
__TRAIT__ | Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 實(shí)現(xiàn)了代碼復(fù)用的一個(gè)方法,稱(chēng)為 traits。 |
__METHOD__ | 類(lèi)的方法名(PHP 5.0.0 新加)。返回該方法被定義時(shí)的名字(區(qū)分大小寫(xiě))。 |
__NAMESPACE__ | 當(dāng)前命名空間的名稱(chēng)(區(qū)分大小寫(xiě))。此常量是在編譯時(shí)定義的(PHP 5.3.0 新增)。 |
Mari terangkan nombor baris semasa dalam fail satu persatu.
Instance
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo '這是第 “ ' . __LINE__ . ' ” 行'; ?>Hasil menjalankan program:
Ini Baris "3"
__FILE__Laluan penuh dan nama fail fail. Jika digunakan dalam fail yang disertakan, mengembalikan nama fail yang disertakan.
Memandangkan PHP 4.0.2, __FILE__ sentiasa mengandungi laluan mutlak (atau laluan mutlak yang diselesaikan dalam kes pautan simbolik), manakala versi sebelumnya kadangkala mengandungi laluan relatif
.
Instance<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo '該文件位于 “ ' . __FILE__ . ' ” '; ?>Hasil berjalan program:
Fail terletak di "D: WWW11. php ”
__DIR__
Direktori tempat letak fail. Jika digunakan dalam fail yang disertakan, mengembalikan direktori tempat fail yang disertakan berada.
Ia bersamaan dengan dirname(__FILE__). Nama direktori tidak termasuk garis miring mengekor melainkan ia adalah direktori akar. (Baharu dalam PHP 5.3.0)
Instance
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo '該文件位于 “ ' . __DIR__ . ' ” '; ?>Hasil menjalankan program:
Fungsi fail ini terletak di " D:WWW " Name (baharu dalam PHP 4.3.0). Memandangkan PHP 5 pemalar ini mengembalikan nama fungsi seperti yang ditakrifkan (sensitif huruf besar-besaran). Dalam PHP 4 nilai ini sentiasa huruf kecil.
Instance
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 function funtext() { echo '函數(shù)名為:' . __FUNCTION__ ; } funtext(); ?>
Hasil berjalan program:
Nama fungsi ialah: funtext
__CLASS__
Nama kelas (baharu dalam PHP 4.3.0). Memandangkan PHP 5 pemalar ini mengembalikan nama kelas apabila ia ditakrifkan (sensitif huruf besar-besaran).
Dalam PHP 4 nilai ini sentiasa huruf kecil. Nama kelas termasuk skop di mana ia diisytiharkan (cth. FooBar). Ambil perhatian bahawa sejak PHP 5.4 __CLASS__ juga berfungsi untuk ciri. Apabila digunakan dalam kaedah trait, __CLASS__ ialah nama kelas yang memanggil kaedah trait.
Instance
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 class classtest { function fun() { echo '類(lèi)名為:' . __CLASS__ . "<br>"; echo '函數(shù)名為:' . __FUNCTION__ ; } } $t = new classtest(); $t->fun(); ?>
Hasil berjalan program:
Nama kelas Untuk: classtestNama fungsi ialah: fun
__TRAIT__Nama sifat (baru ditambah dalam PHP 5.4.0). Sejak PHP 5.4.0, PHP melaksanakan kaedah penggunaan semula kod yang dipanggil ciri. Nama Trait termasuk skop di mana ia diisytiharkan (cth. FooBar). Ahli yang diwarisi daripada kelas asas ditindih oleh kaedah MyHelloWorld dalam SayWorld Trait yang disisipkan. Tingkah lakunya konsisten dengan kaedah yang ditakrifkan dalam kelas MyHelloWorld. Susunan keutamaan ialah kaedah dalam kelas semasa mengatasi kaedah ciri, yang seterusnya mengatasi kaedah dalam kelas asas.
Instance
<?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(); ?>
Hasil larian program:
Hello World!
__KAEDAH__
Nama kaedah kelas (PHP 5.0 .0 Baru ditambah). Mengembalikan nama kaedah seperti yang ditakrifkan (sensitif huruf besar-kecil).
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 function test() { echo '函數(shù)名為:' . __METHOD__ ; } test(); ?>
Hasil berjalan program:
Nama fungsi: ujian
__NAMESPACE__
Nama ruang nama semasa (sensitif huruf besar-besaran). Pemalar ini ditakrifkan pada masa penyusunan (baru dalam PHP 5.3.0).<?php namespace MyProject; header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo '命名空間為:"', __NAMESPACE__, '"'; // 輸出 "MyProject" ?>Hasil pelaksanaan program:
Ruang nama ialah: "Projek Saya"