Hằng số Magic trong PHP

Hằng số Magic trong PHP là gì? Cách khai báo và sử dụng như thế nào? Mời bạn đọc cùng eLib.VN tìm hiểu qua bài viết dưới đây nhé!

Hằng số Magic trong PHP

1. Hằng số Magic trong PHP

Hằng số Magic trong PHP là các hằng số được định nghĩa trước trong PHP được thay đổi trên cơ sở sử dụng của chúng. Chúng bắt đầu bằng dấu gạch dưới kép và kết thúc bằng dấu gạch dưới kép (__).

Chúng tương tự như các hằng số được định nghĩa trước khác nhưng giá trị của chúng được thay đổi theo ngữ cảnh, nên chúng được gọi là hằng số magic.

Có tám hằng số magic được định nghĩa trong bảng dưới đây. Chúng phân biệt chữ hoa chữ thường.

Name Description
__LINE__ Đại diện cho số dòng hiện tại nơi nó được sử dụng.
__FILE__ Đại diện cho đường dẫn đầy đủ và tên file của file. Nếu nó được sử dụng bên trong một file khác bằng từ khóa include, nó trả về tên của file được include.
__DIR__ Biểu diễn đường dẫn thư mục đầy đủ của file. Tương đương với dirname(__ file__). Nó không có dấu gạch chéo trừ khi nó là một thư mục gốc.
__FUNCTION__ Đại diện cho tên hàm nơi nó được sử dụng. Trả về blank khi nó không được sử dụng bên trong hàm nào.
__CLASS__ Đại diện cho tên lớp nơi nó được sử dụng. Trả về blank khi nó không được sử dụng bên trong lớp nào.
__TRAIT__ Trả về tên của đặc tính nơi mà nó được sử dụng. Trả về blank khi nó được sử dụng bên ngoài hàm. Nó bao gồm namespace được khai báo bên trong.
__METHOD__ Đại diện cho tên của phương thức lớp mà nó được sử dụng. Tên phương thức được trả về khi nó được khai báo.
__NAMESPACE__ Đại diện cho tên của namespace hiện tại.

2. Ví dụ hằng số magic trong PHP

File: hang-so-magic.php

<?php
echo "<h3>Ví dụ hằng số PHP __LINE__</h3>";
echo "Bạn đang ở dòng số " . __LINE__ . "<br><br>";

echo "<h3>Ví dụ hằng số PHP __FILE__</h3>";
echo __FILE__ . "<br><br>";

echo "<h3>Ví dụ hằng số PHP __DIR__</h3>";
echo __DIR__ . "<br><br>";
echo dirname(__FILE__) . "<br><br>";

echo "<h3>Ví dụ hằng số PHP __FUNCTION__</h3>";
// sử dụng hằng số magic bên trong hàm.
function cash()
{
    echo 'Tên của hàm là: ' . __FUNCTION__ . "<br><br>";
}
cash();

// sử dụng hằng số magic bên ngoài hàm.
function test_function()
{
    echo 'Hi';
}
test_function();
echo __FUNCTION__ . "<br><br>"; // trả về blank
echo "<h3>Ví dụ hằng số PHP __CLASS__</h3>";
class abc
{
    public function __construct()
    {;
    }
    function abc_method()
    {
        echo __CLASS__ . "<br><br>"; // in tên của lớp abc.
        
    }
}
$t = new abc;
$t->abc_method();

class first
{
    function test_first()
    {
        echo __CLASS__; //in lớp cha first
        
    }
}
class second extends first
{
    public function __construct()
    {;
    }
}
$t = new second;
$t->test_first();

echo "<h3>Ví dụ hằng số PHP __TRAIT__</h3>";
traitcreated_trait
{
    function abc()
    {
        echo __TRAIT__; //in tên của trait là created_trait
        
    }
}
class anew
{
    use created_trait;
}
$a = new anew;
$a->abc();

echo "<h3>Ví dụ hằng số PHP __METHOD__</h3>";
class meth
{
    public function __construct()
    {
        echo __METHOD__ . "<br><br>"; //in meth::__construct
        
    }
    public function meth_fun()
    {
        echo __METHOD__; //in meth::meth_fun
        
    }
}
$a = new meth;
$a->meth_fun();

echo "<h3>Ví dụ hằng số PHP __NAMESPACE__</h3>";
class name
{
    public function __construct()
    {
        echo 'Dòng này sẽ được in khi gọi namespace';
    }
}
$clas_name = __NAMESPACE__ . '\name';
$a = new $clas_name;
?>

Kết quả:

Hằng số Magic trong PHP

Trên đây là bài viết của eLib.VN về hằng số Magic trong PHP. Như vậy là chúng ta đã biết về hằng số Magic trong PHP là gì, cũng như cách sử dụng Hằng số ma thuật này. Hãy xem kỹ các ví dụ để ghi nhớ cách sử dụng chúng nhé. Chúc bạn học lập trình PHP hiệu quả!

Ngày:08/10/2020 Chia sẻ bởi:Denni

CÓ THỂ BẠN QUAN TÂM