Dalam artikel sebelumnya "Membawa anda untuk memahami definisi dan pemerolehan nilai pemalar PHP", kami memperkenalkan pengetahuan asas pemalar dalam PHP secara terperinci Dalam artikel ini, mari kita lihat PHP . Pengetahuan tentang pemalar ajaib dalam , saya harap ia akan membantu semua orang!
Dalam artikel sebelum ini, kami belajar tentang pengetahuan asas definisi mudah dan pemerolehan pemalar dalam PHP, serta beberapa kaedah ajaib. Seterusnya, mari kita lihat pengetahuan yang berkaitan tentang pemalar sihir, apakah itu, dan apakah kegunaan utama pemalar sihir.
Apakah pemalar ajaib
Pemalar ajaib bukanlah pemalar yang betul-betul Kami memperkenalkan pemalar dalam artikel kami sebelum ini Perhatikan bahawa pemalar tidak boleh diubah selepas ia ditakrifkan. Tetapi pemalar ajaib ialah beberapa pemalar yang dipratentukan oleh PHP Pemalar yang dipratentukan ini boleh berubah disebabkan oleh perubahan dalam lokasinya.
Banyak pemalar yang dipratentukan disediakan oleh PHP dalam mana-mana skrip Pemalar yang berbeza mempunyai perpustakaan sambungan yang berbeza. Pemalar ajaib boleh difahami sebagai pemalar pratakrif khas.
Format penulisan pemalar ajaib biasanya dua garis bawah (__
) bermula dengan dua garis bawah dan berakhir dengan dua garis bawah, seperti: __LINE__
, __FILE__
, dsb. Apabila bercakap tentang format penulisan, anda perlu tahu bahawa pemalar ajaib tidak sensitif huruf besar-besaran, tetapi cuba gunakan huruf besar semasa menulis.
Penggunaan pemalar ajaib
Persekitaran operasi PHP menyediakan lapan pemalar ajaib, seperti yang dinyatakan di atas, walaupun ia dipanggil Pemalar, tetapi tidak betul-betul pemalar, nilai mereka berubah dengan perubahan dalam kod Seterusnya, mari kita lihat masing-masing lapan pembolehubah ajaib ini.
1.<strong><span style="font-size: 16px;">__LINE__ </span></strong>
__LINE__
__LINE__
Seterusnya, mari kita lihat penggunaan
pemalar ajaib melalui contoh, dan lihat bagaimana nilai pemalar ajaib berubah apabila kedudukan perubahan.<?php echo '这是第 " ' . __LINE__ . ' " 行<br/>'; echo '这是第 " ' . __LINE__ . ' " 行<br/>'; echo '---------------<br/>'; echo '这是第 " ' . __LINE__ . ' " 行'; ?>
Contohnya adalah seperti berikut:
Hasil keluaran:
Dalam contoh di atas, kami lulus pembolehubah ajaib __LINE_ _ boleh mendapatkan nombor baris lokasi kod semasa.Apa yang perlu diberi perhatian ialah: kita dapati bahawa apabila lokasi kod berbeza, hasil output juga berbeza. Oleh itu, kami berkata di atas bahawa pemalar ajaib tidak dianggap pemalar, dan nilainya berubah apabila kod berubah. Mari lihat ke bawah: __FILE__
2.
__FILE__
Laluan mutlak fail boleh diperolehi melalui
, dan laluan ini mengandungi nama fail. Perlu diingatkan bahawa jika pemalar ajaib digunakan dalam fail yang disertakan, hasil yang dikembalikan ialah nama fail yang disertakan.<?php echo '该文件位于 " ' . __FILE__ . ' " '; ?>
Mari kita lihat penggunaan __FILE__ melalui contoh seperti berikut:
Hasil keluaran:
<. 🎜>Dalam contoh di atas, kami menggunakan __FILE__ untuk mendapatkan laluan mutlak fail. __DIR__
3. digunakan untuk menunjukkan direktori di mana fail berada
__DIR__
boleh diperolehi melalui <🎜. >dirname(__FILE__)
Direktori tempat fail terletak masih berbeza daripada laluan mutlak yang digunakan oleh __FILE__ untuk mendapatkan fail Direktori tempat fail terletak tidak mempunyai nama fail fail semasa. Pemalar ajaib ini juga boleh difahami sebagai
<?php echo '该文件位于 " ' . __DIR__ . ' " '; echo dirname(__FILE__); ?>
Hasil keluaran:
<🎜. >
Dalam contoh di atas, kami memperoleh direktori di mana fail semasa terletak melalui dua kaedah, satu adalah melalui pemalar ajaib __DIR__, dan satu lagi ialah dirname(__FILE__). sama.
4.__FUNCTION__
Digunakan untuk mendapatkan nama fungsi atau nama kaedah semasa
Melalui __FUNCTION__
anda boleh mendapatkan nama atau kaedah daripada fungsi semasa Seterusnya, mari kita lihat penggunaan pemalar ajaib __FUNCTION__ melalui contoh.
Contohnya adalah seperti berikut:
<?php function test() { echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ; } test(); ?>
Hasil keluaran:
Melalui contoh di atas kita faham bahawa __FUNGSI__ boleh mendapatkan semasa Nama fungsi fungsi.
5.__CLASS__
用于获取当前的类名
通过__CLASS__
可以用于获取当前的类名,齐总也包括了当前类的作用区域或命名空间。接下来我们通过示例来看一下__CLASS__的使用。
示例如下:
<?php class test { function _print() { echo '通过__CLASS__获取的类名为:' . __CLASS__ . "<br>"; echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
输出结果:
通过上述示例已经了解在PHP中可以通过__CLASS__来获取当前的类名。
6.__TRAIT__
当前的trait名称
通过__TEAIT__
能够表示当前的trait名称,这其中包括了trait的作用区域或者命名空间。接下来我们通过示例来看一下__TRAIT__的使用。
示例如下:
<?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(); ?>
输出结果:
7.__METHOD__
当前的方法名
通过__METHOD__
能够获取当前的方法名,其中也包括类名,接下来我们通过示例来看一下__METHOD__的使用方法,示例如下:
<?php function testMethod() { echo '当前的函数名为:' . __METHOD__ . PHP_EOL . '<br/>'; } class TestMethodClass { function testMethod1() { echo '当前的方法名和类名为:' . __METHOD__ . PHP_EOL; } } testMethod(); $test = new TestMethodClass(); $test->testMethod1(); ?>
输出结果:
上述示例中,我们通过__METHOD__获取了函数名和方法名。其中方法名中包括了类名。
8.__NAMESPACE__
当前文件的命名空间名称
通过__NAMESPACE__
可以获取当前文件的命名空间名称,接下来我们通过示例来看一下,示例如下:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; ?>
输出结果:
到此我们便是通过示例将八种魔术常量了解了一下。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Atas ialah kandungan terperinci Ketahui cara menggunakan lapan pemalar ajaib yang biasa digunakan dalam PHP (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!