Hằng số Magic trong PHP – Học lập trình PHP online – VietTuts

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.

Nội dung chính

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

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>";
trait created_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ả:

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

Rate this post

Viết một bình luận