Home  >  Article  >  Backend Development  >  What are magic constants in PHP? What are the magic constants? (Summarize)

What are magic constants in PHP? What are the magic constants? (Summarize)

青灯夜游
青灯夜游forward
2021-08-05 10:48:072539browse

What are magic constants in PHP? What are the magic constants? (Summarize)

We have learned about some commonly used magic methods before. In addition to magic methods, PHP also provides some magic constants. I believe everyone has used them in daily work. Here are some conclude.

In fact, PHP also provides many constants but they all depend on various extension libraries. Several constants are universal and provide some location-related information following the location of the code where they are located. These are** *Magic Constant***.

Magic constants are case-insensitive, __LINE__ and __line__ are the same, but for engineering development, constants should be in uppercase letters as much as possible.

__LINE__

The current line number in the file.

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();

__FILE__

The full path and file name of the file. If used within an included file, returns the name of the included file. Since PHP 4.0.2, __FILE__ always contains an absolute path (or the resolved absolute path in the case of a symbolic link), whereas versions before that sometimes contained a relative path.

echo __FILE__ . PHP_EOL; // D:\phpproject\php\newblog\php-magic-constant.php

__DIR__

##The directory where the file is located. If used within an included file, returns the directory where the included file is located. It is equivalent to dirname(__FILE__). Directory names do not include the trailing slash unless they are the root directory. (New in PHP 5.3.0) =

echo __DIR__ . PHP_EOL; // D:\phpproject\php\newblog

__FUNCTION__##Function name (New in PHP 4.3.0). Since PHP 5 this constant returns the name of the function as it was defined (case sensitive). In PHP 4 this value is always lowercase.

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();

__CLASS__The name of the class (new in PHP 4.3.0). Since PHP 5 this constant returns the name of the class when it was defined (case sensitive). In PHP 4 this value is always lowercase. The class name includes the scope in which it is declared (e.g. Foo\Bar). Note that since PHP 5.4 __CLASS__ also works for traits. When used within a trait method, __CLASS__ is the name of the class that calls the trait method.

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__The name of the Trait (new in PHP 5.4.0). Since PHP 5.4 this constant returns the name of the trait as it was defined (case-sensitive). The trait name includes the scope in which it is declared (e.g. Foo\Bar).

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();

__METHOD__The method name of the class (newly added in PHP 5.0.0). Returns the name of the method as it was defined (case-sensitive).

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__The name of the current namespace (case-sensitive). This constant is defined at compile time (new in 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();

Full code: https://github.com/zhangyue0503/php/blob/master/newblog/php-magic-constant.php

Recommended learning: "
PHP Video Tutorial

"

The above is the detailed content of What are magic constants in PHP? What are the magic constants? (Summarize). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete