Trong PHP có 9 hằng số rất đặc biệt, được gọi là hăng số ma thuật, đây là những hằng số với tên định nghĩa sẵn trong PHP, giá trị của hằng số đó bị thay đổi tùy thuộc vào nơi mà bạn sử dụng nó. Có hằng số ma thuật có vẻ hữu ích trong chương trình như __DIR__, tuy vậy hầu hết những hằng này hữu ích hơn cho việc debug, giám sát, quản lý lỗi khi bạn phát triển ứng dụng.

Hằng số __LINE__ trong php

Hằng số này trả về số nguyên chính là số dòng mà __LINE__ được sử dụng (là dòng thứ bao nhiêu trong file code).

// đây là dòng 100 của file code
echo __LINE__;      // in ra 101

$line = __LINE__;   // $line có giá trị 103

Hằng số __FILE__

Hằng số __FILE__ có giá trị là tên file (đường dẫn đầy đủ) của script mà __FILE__ được sử dụng (file sử dụng __FILE__)

Ví dụ: Đây là trích đoạn code trong file /var/website/web1/index.php

echo __FILE__;
// in ra: /var/website/web1/index.php

Hằng số __DIR__

Hằng số __DIR__ là chuỗi tên thư mục mà script đang chạy.

Ví dụ: trong file /var/website/web1/index.php

echo __DIR__;
// in ra: /var/website/web1

Hằng số __FUNCTION__

Hằng số này trong hàm, có giá trị là chuỗi tên hàm đó.

function myFunction()
{
    return __FUNCTION__;
}
echo myFunction();
// In ra: myFunction

Hằng số __CLASS__

Hằng số __CLASS__ có giá trị bằng chuỗi tên lớp nơi đang sử dụng __CLASS__.

class TestClass
{
    public function Hi()
    {
        return __CLASS__;
    }
}

$obj = new TestClass();
echo $obj->Hi();
// In ra: TestClass

Hằng số __TRAIT__

Hằng số __TRAIT__ bên trong trait, có giá trị bằng tên trait hiện tại đang sử dụng. (giống __CLASS__)

Hằng số __METHOD__

Hằng số __METHOD__ chứa tên phương thức đang thực thi.

class TestClass
{
    public function Hi()
    {
        return __METHOD__;
    }
}

$obj = new TestClass();
echo $obj->Hi();
// In ra: Hi

Hằng số __NAMESPACE__

Hằng số __NAMESPACE__ chứa tên namespace có code đang thực thi.

Hằng số ClassName::class

Bạn có một lớp có tên ClassName, thì ClassName::class là một chuỗi có giá trị bằng tên lớp (ClassName).

Ví dụ, bạn có lớp MyClass được định nghĩa thuộc namespace \Abc\Xyz

use \Abc\Xyz

echo MyClass::class;
// in ra: \Abc\Xyz\MyClass

Đăng ký nhận bài viết mới