PHP 介紹魔術常數


分類

建立時間: 2023年9月5日 01:02
更新時間: 2023年9月5日 01:08

說明

魔術常數可以印出當前腳本的資訊,比較常在複雜的程式設計中看到。

魔術常數

名字 說明
__CLASS__ 當前類的名稱。類名包括其被聲明的作用域(例如 Foo\Bar)。當用在 trait 方法中時,__CLASS__ 是調用 trait 方法的類的名字。
__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。
__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。
__FUNCTION__ 當前函數的名稱。匿名函數則為 {closure}。
__LINE__ 文件中的當前行號。
__METHOD__ 類的方法名。
__NAMESPACE__ 當前命名空間的名稱。
__TRAIT__ Trait 的名字。 Trait 名包括其被聲明的作用域(例如 Foo\Bar)。
ClassName::class 完整的類名。

範例

<?php

namespace Foo;

function output()
{
    echo 'Current function: ' . __FUNCTION__ . '<br>';
}

trait ABC
{
    public function traitOutput()
    {
        echo 'Current trait: ' . __TRAIT__ . '<br>';
    }
}

class Bar
{
    use ABC;

    public function barOutput()
    {
        echo 'Current class: ' . __CLASS__ . '<br>';
        echo 'Current directory: ' . __DIR__ . '<br>';
        echo 'Current file: ' . __FILE__ . '<br>';
        echo 'Current line: ' . __LINE__ . '<br>';
        echo 'Current method: ' . __METHOD__ . '<br>';
        echo 'Current namespace: ' . __NAMESPACE__ . '<br>';
    }
}

output();

$obj = new Bar();
$obj->barOutput();
$obj->traitOutput();
echo 'obj class name: ' . $obj::class . '<br>';

輸出

Current function: Foo\output
Current class: Foo\Bar
Current directory: www
Current file: www/example.php
Current line: 27
Current method: Foo\Bar::barOutput
Current namespace: Foo
Current trait: Foo\ABC
obj class name: Foo\Bar

參考

觀看次數: 367
constantmagicphp
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!