PHPでこれらの魔法の定数

私たちが一般的に使用される方法のマジックナンバーを理解する前に、魔法の方法に加えて、PHPはまた、魔法の定数のいくつかは、私たちはあなたの要約を与えるためにここに、日常業務で使用していると信じています。

***実際には、PHPはまた、定数の数を提供するが、拡張子の種類に依存するが、いくつかの定数が共通であり、それらは魔法一定である位置に関する情報を提供するために置かれている場所の位置コードが続くあります。マジック定数は、大文字と小文字を区別しません__ LINE__と__LINE__は同じですが、プロジェクトの開発のために、メインの定数または大文字にしてみてください。

__ライン__

現在の行番号のファイル。

echo __LINE__ . PHP_EOL; // 3

function testLine()
{
    echo __LINE__ . PHP_EOL; // 7
}

class TestLineClass
{
    function testLine()
    {
        echo __LINE__ . PHP_EOL; // 14
    }
}

testLine();
$test = new TestLineClass();
$test->testLine();
复制代码

__ファイル__

ファイルのフルパスとファイル名。インクルードファイルで使用する場合は、ファイル名はリターンに含まれています。PHP以降4.0.2ので、__ FILE__は常に絶対パスを(それがシンボリックリンクである場合、それは解析された絶対パスである)を含むが、先行このバージョンに時々相対パスを含みます。

echo __FILE__ . PHP_EOL; // D:\phpproject\php\newblog\php-magic-constant.php
复制代码

__ DIR__

ディレクトリのファイルが配置されています。インクルードされたファイルが返される場合含まれているファイル場合は、ディレクトリがあります。それはDIRNAME(__ FILE__)と同等です。それはルートディレクトリ、またはディレクトリ名でない限り末尾にスラッシュが含まれていません。=(PHPは、新たに5.3.0)

echo __DIR__ . PHP_EOL; // D:\phpproject\php\newblog
复制代码

__関数__

関数名(PHP 4.3.0を追加しました)。この定数返すので関数の名前は5 PHP(大文字と小文字を区別)から定義されます。PHP 4では、この値は常に小文字です。

echo __FUNCTION__ . PHP_EOL; // 啥都没输出
function testFunction()
{
    echo __FUNCTION__ . PHP_EOL; // testFunction
}

class TestFunctionClass
{
    function testFunction1()
    {
        echo __FUNCTION__ . PHP_EOL; // testFunction1
    }
}

testFunction();
$test = new TestFunctionClass();
$test->testFunction1();
复制代码

__クラス__

クラスの名前(PHP 4.3.0を追加しました)。この定数返すのでクラス名は、5 PHP(大文字と小文字を区別)からの時間として定義されます。PHP 4では、この値は常に小文字です。どのクラス名は、アクティブ領域(例えば、Fooの\バー)宣言されています。形質の__CLASS__も役割を果たして以降PHP 5.4から注意してください。形質方法で使用する場合、__ CLASS__は、クラスメソッド呼び出しの形質の名前です。

echo __CLASS__ . PHP_EOL; // 什么也没有
function testClass()
{
    echo __CLASS__ . PHP_EOL; // 什么也没有
}

trait TestClassTrait
{
    function testClass2()
    {
        echo __CLASS__ . PHP_EOL; // TestClassClass
    }
}

class TestClassClass
{
    use TestClassTrait;

    function testClass1()
    {
        echo __CLASS__ . PHP_EOL; // TestClassClass
    }
}

testClass();
$test = new TestClassClass();
$test->testClass1();
$test->testClass2();
复制代码

__TRAIT__

形質名前(PHP 5.4.0を追加しました)。PHP 5.4ので、以降この一定の戻り形質が定義されているときに名前(大文字と小文字を区別)。それが宣言されている地域の役割(例えばフー\バー)を含む形質名前。

echo __TRAIT__ . PHP_EOL; // 什么也没有
function testTrait()
{
    echo __TRAIT__ . PHP_EOL; // 什么也没有
}

trait TestTrait
{
    function testTrait2()
    {
        echo __TRAIT__ . PHP_EOL; // TestTrait
    }
}

class TestTraitClass
{
    use TestTrait;

    function testTrait1()
    {
        echo __TRAIT__ . PHP_EOL; // 什么也没有
    }
}

testTrait();
$test = new TestTraitClass();
$test->testTrait1();
$test->testTrait2();
复制代码

__方法__

クラス(PHP 5.0.0を追加しました)のための方法。メソッドの名前が定義されて戻るとき(大文字と小文字を区別)。

echo __METHOD__ . PHP_EOL; // 什么也没有
function testMethod()
{
    echo __METHOD__ . PHP_EOL; // testMethod
}

class TestMethodClass
{
    function testMethod1()
    {
        echo __METHOD__ . PHP_EOL; // TestMethodClass::testMethod1
    }
}

testMethod();
$test = new TestMethodClass();
$test->testMethod1();
复制代码

__NAMESPACE__

現在の名前空間(大文字と小文字を区別)の名前。この定数は、コンパイル時(PHP 5.3.0アドオン)で定義されます。

echo __NAMESPACE__ . PHP_EOL; // test\magic\constant
class TestNameSpaceClass
{
    function testNamespace()
    {
        echo __NAMESPACE__ . PHP_EOL; // test\magic\constant
    }
}

$test = new TestNameSpaceClass();
$test->testNamespace();
复制代码

完全なコード:github.com/zhangyue050 ...

ます。https://juejin.im/post/5ce20a3ef265da1b8b2b2fd4で再現

おすすめ

転載: blog.csdn.net/weixin_33913377/article/details/91427529