搜尋
首頁後端開發php教程帶你學會PHP常用的八個魔術常數的使用(範例詳解)

在之前的文章《帶你看懂PHP常數的定義與值的獲取》中詳細的介紹了PHP中的常數基礎的相關知識,本篇文章我們一起來看一下PHP中的魔術常數相關知識,希望對大家有幫助!

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

在先前的文章中我們了解了PHP中常數簡單的定義與所獲得的相關基礎知識,還有一些魔術方法。接下來我們就來看看魔術常數的相關知識,來看什麼是魔術常數,魔術常數主要使用的有哪些。

魔術常數是什麼

#魔術常數準確來說並不能算是常數,而常數我們在之前的文章中我們介紹到,常數被定義之後是不能被改變的。但是魔術常數是PHP預先定義的一些常數,這些預先定義的常數能夠因為所在位置的變化而改變。

很多的預定義常數在任一腳本中都是PHP提供的,常數不同他們的拓展函式庫也是不同的。魔術常數可以理解為特殊的預定義常數。

其中魔術常數的書寫格式通常是用兩個底線(__)開頭兩個底線結尾,例如:__LINE____FILE__等等。說到書寫格式的話,需要知道,魔術常數不區分大小寫,但是盡量書寫的時候還是採用大寫的形式。

魔術常數的使用

PHP的運行環境中提供了八個魔術常數,就像上文中說的,雖然被叫做常數,但準確來說不算是常數,他們的值隨著程式碼中的變化而改變,接下來我們分別來看這八個魔術變數。

1.<strong><span style="font-size: 16px;">#__LINE__ </span></strong> 表示文件中目前的行號

接下來我們透過範例來看__LINE__ 魔術常數的使用,並且看一下隨著位置的變化魔術常數的值有什麼變化。

範例如下:

<?php
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行<br/>&#39;;
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行<br/>&#39;;
echo &#39;---------------<br/>&#39;;
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行&#39;;
?>

輸出結果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

在上述範例中,我們透過魔術變數__LINE__就能夠取得目前程式碼所在位置的行數。

其中需要注意的是:我們能夠發現,當程式碼所在的位置不同,其所輸出的結果也是不同的。所以我們上文中說了魔術常數並不能算是常數,它的數值會隨著程式碼的變化而改變。我們接著往下看:

2.__FILE__  表示檔案的絕對路徑

透過__FILE__能夠取得檔案的絕對路徑,而這個路徑包含了檔案名稱。其中需要注意的是,如果該魔術常數用在了包含檔案中,那麼傳回的結果就是被包含的檔案名稱。

下面我們透過範例來看__FILE__的使用,範例如下:

<?php
echo &#39;该文件位于 " &#39; . __FILE__ . &#39; " &#39;;
?>

輸出結果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

在上述範例中我們便透過__FILE__完成了對檔案絕對路徑的取得。

3.__DIR__#  用來表示檔案所在目錄

透過__DIR__ 能夠取得檔案所在的目錄,而這個檔案所在的目錄與__FILE__取得檔案的絕對路徑還是不一樣的,檔案所在的目錄是不帶有目前檔案的檔案名稱的。也可以把該魔術常數理解為 dirname(__FILE__)

下面我們透過範例來看__DIR__魔術常數的使用,範例如下:

<?php
echo &#39;该文件位于 " &#39; . __DIR__ . &#39; " &#39;;
echo  dirname(__FILE__);
?>

輸出結果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

##上述範例中我們透過兩種方法,都取得了目前檔案所在的目錄,一個是透過__DIR__魔術常數,另一個是dirname(__FILE__),它們兩個能夠達到的效果是相同的。

4.__FUNCTION__  用於取得目前函數名稱或方法名稱

透過

__FUNCTION__能夠取得目前函數的名稱或方法的名稱,接下來我們透過範例來看__FUNCTION__魔術常數的用法。

範例如下:

<?php
function test() {
 echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
}
test();
?>

輸出結果:


帶你學會PHP常用的八個魔術常數的使用(範例詳解)

#透過上述範例我們了解__FUNCTION__能夠取得目前函數的函數名。


5.__CLASS__  用于获取当前的类名

通过__CLASS__可以用于获取当前的类名,齐总也包括了当前类的作用区域或命名空间。接下来我们通过示例来看一下__CLASS__的使用。

示例如下:

<?php
class test {
 function _print() {
  echo &#39;通过__CLASS__获取的类名为:&#39; . __CLASS__ . "<br>";
  echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
 }
}
$t = new test();
$t->_print();
?>

输出结果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

通过上述示例已经了解在PHP中可以通过__CLASS__来获取当前的类名。

6.__TRAIT__  当前的trait名称

通过__TEAIT__能够表示当前的trait名称,这其中包括了trait的作用区域或者命名空间。接下来我们通过示例来看一下__TRAIT__的使用。

示例如下:

<?php
class Base {
 public function sayHello() {
  echo &#39;Hello &#39;;
 }
}
trait SayWorld {
 public function sayHello() {
  parent::sayHello();
  echo &#39;World!&#39;;
 }
}
class MyHelloWorld extends Base {
 use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
?>

输出结果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

7.__METHOD__  当前的方法名

通过__METHOD__能够获取当前的方法名,其中也包括类名,接下来我们通过示例来看一下__METHOD__的使用方法,示例如下:

<?php
function testMethod()
{
    echo &#39;当前的函数名为:&#39; . __METHOD__ . PHP_EOL . &#39;<br/>&#39;;
}
class TestMethodClass
{
    function testMethod1()
    {
        echo &#39;当前的方法名和类名为:&#39; . __METHOD__ . PHP_EOL; 
    }
}
testMethod();
$test = new TestMethodClass();
$test->testMethod1();
?>

输出结果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

上述示例中,我们通过__METHOD__获取了函数名和方法名。其中方法名中包括了类名。

8.__NAMESPACE__  当前文件的命名空间名称

通过__NAMESPACE__可以获取当前文件的命名空间名称,接下来我们通过示例来看一下,示例如下:

<?php
namespace MyProject;
echo &#39;命名空间为:"&#39;, __NAMESPACE__, &#39;"&#39;; 
?>

输出结果:

帶你學會PHP常用的八個魔術常數的使用(範例詳解)

到此我们便是通过示例将八种魔术常量了解了一下。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是帶你學會PHP常用的八個魔術常數的使用(範例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
繼續使用PHP:耐力的原因繼續使用PHP:耐力的原因Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python:探索他們的相似性和差異PHP和Python:探索他們的相似性和差異Apr 19, 2025 am 12:21 AM

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP和Python:解釋了不同的範例PHP和Python:解釋了不同的範例Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:深入了解他們的歷史PHP和Python:深入了解他們的歷史Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在PHP和Python之間進行選擇:指南在PHP和Python之間進行選擇:指南Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和框架:現代化語言PHP和框架:現代化語言Apr 18, 2025 am 12:14 AM

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHP的影響:網絡開發及以後PHP的影響:網絡開發及以後Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具