首頁  >  文章  >  後端開發  >  php中的魔術常數實例詳解

php中的魔術常數實例詳解

怪我咯
怪我咯原創
2017-05-03 17:33:311659瀏覽

什麼是魔術常數?

講解PHP常數的時候,我們知道PHP中的常數大部分都是不變的,但是有8個預定義常數會隨著他們所在代碼位置的變化而變化,這8個常數稱為魔術常數,這些特殊的常數是不區分大小寫,

PHP 的「魔術常數」如下表

號中的當前__LINE__LINE%。 __FILE__檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。 __DIR__檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。 (PHP 5.3.0新增) __FUNCTION__函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常數傳回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。 __CLASS__類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常數傳回該類別被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。類別名稱包括其被宣告的作用區域(例如 FooBar)。注意自 PHP 5.4 起 __CLASS__ 對 trait 也起作用。當用在 trait 方法時,__CLASS__ 是呼叫 trait 方法的類別的名字__TRAIT__Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常數傳回 trait 被定義時的名字(區分大小寫)。 Trait 名稱包含其聲明的作用區(如 FooBar)__METHOD__類別的方法名稱(PHP 5.0.0 新加)。傳回該方法被定義時的名字(區分大小寫)。 __NAMESPACE__目前命名空間的名稱(區分大小寫)。此常數是在編譯時定義的(PHP 5.3.0 新增)。
函數 檢測型別
函數 檢測型
🎜🎜🎜

php中的魔術常數實例詳解上表中「__」是兩條下劃線,而不是一條「_」。

魔術常數常被用來取得當前環境資訊或記錄日誌。

下面我看一下這些魔術常數的用法:

__LINE__   取得檔案中的目前行號。

實例

<?PHP
header("content-type:text/html;charset=utf-8");
echo "这是第 ". __LINE__ ."行";
echo "<br/>";
?>

程式碼運作結果:

php中的魔術常數實例詳解

__FILE__   取得檔案的完整路徑和檔案名,如果使用在已包含的檔案名稱中,則傳回已包含的檔案名稱。

php中的魔術常數實例詳解

 __DIR__  取得文件所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。

實例

<?php
header("content-type:text/html;charset=utf-8");
echo "该文件位于 ". __DIR__ ."文件夹下";
echo "<br/>";
?>

程式碼運作結果:

php中的魔術常數實例詳解

__FUNCTION__  取得此函數定義時的名稱(區分大小寫

 __CLASS__  取得此類別定義時的名字(區分大小寫)

 實例php中的魔術常數實例詳解

<?php
header("content-type:text/html;charset=utf-8");
function Test() {
    echo  "该函数名为:". __FUNCTION__ ;
    echo "<br/>";
}
Test();
?>
METHO___777c777757777號名稱( ,若函數在類別中,則傳回類別方法名稱,

        即:  類別名稱::方法名稱。

實例

<?php
header("content-type:text/html;charset=utf-8");
class test {
    function show() {
        echo "该类名为:". __CLASS__ . "<br>";
        echo "该函数名为:". __FUNCTION__ ;
        echo "<br/>";
    }
}
$t = new test();
$t->show();
?>

程式碼運作結果:

php中的魔術常數實例詳解

__NAMESPACE__         當前命名空間的名稱(區分大小寫)

以上是php中的魔術常數實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn