PHP Magic Constants – Hằng Số Phép Thuật trong PHP

Trong PHP, Magic Constants (Hằng số phép thuật) được định nghĩa trước và thay đổi giá trị của chúng dựa trên ngữ cảnh sử dụng. Các hằng số này bắt đầu với hai dấu gạch chân kép () và kết thúc với hai dấu gạch chân kép. Chúng tương tự như các hằng số được định nghĩa trước khác, nhưng vì chúng thay đổi giá trị theo ngữ cảnh, cho nên chúng được gọi là Magic Constants. Hiện có chín Magic Constants trong PHP, trong đó có tám Magic Constants bắt đầu và kết thúc bằng hai dấu gạch chân kép (), và một PHP Magic Constant không bắt đầu hoặc kết thúc bằng dấu gạch chân kép.

Tổng quan PHP Magic Constants

PHP Magic Constants là các hằng số được định nghĩa trước trong PHP và thay đổi giá trị của chúng dựa trên ngữ cảnh sử dụng. Chúng được sử dụng để cung cấp thông tin tại thời điểm biên dịch mã, chứ không phải tại thời điểm chạy mã.

Tất cả các PHP Magic Constants đều bắt đầu và kết thúc bằng hai dấu gạch chân kép (), ngoại trừ một Magic Constant không bắt đầu hoặc kết thúc bằng dấu gạch chân kép. Các Magic Constants này là __LINEFILEDIRFUNCTIONCLASSTRAITMETHODNAMESPACE và ClassName::class.

Các Magic Constants trong PHP là các hằng số được định nghĩa trước và thay đổi giá trị theo ngữ cảnh sử dụng. Chúng được sử dụng để cung cấp thông tin tại thời điểm biên dịch mã, chứ không phải tại thời điểm chạy mã.

Hướng dẫn PHP Magic Constants

Dưới đây là các Magic Constants trong PHP:

  1. LINE: Trả về số dòng hiện tại của tệp tin, nơi PHP Magic Constant này được sử dụng.
<?php
echo "Bạn đang ở dòng số " . __LINE__;
?>

Kết quả:

Bạn đang ở dòng số 3
  1. FILE: Trả về đường dẫn đầy đủ của tệp tin được thực thi, nơi tệp tin được lưu trữ. Nếu nó được sử dụng trong function include, tên của tệp tin được bao gồm.
<?php
echo "Đường dẫn của tệp là:" . __FILE__;
?>

Kết quả:

Đường dẫn của tệp là: D:\xampp\htdocs\program\magic.php
  1. DIR: Trả về đường dẫn thư mục đầy đủ của tệp tin được thực thi. Đường dẫn này tương đương với dirname(FILE). PHP Magic Constant này không có dấu gạch chân cuối cùng trừ khi nó là thư mục root.
<?php
echo "Đường dẫn của thư mục là: " . __DIR__;
?>

Kết quả:

Đường dẫn của thư mục là: D:\xampp\htdocs\program
  1. FUNCTION: Trả về tên function mà PHP Magic Constant này được sử dụng. Nó sẽ trả về giá trị trống nếu được sử dụng bên ngoài bất kỳ function nào.
<?php
function test() {
  echo "Tên của function là: " . __FUNCTION__;
}
test();
?>

Kết quả:

Tên của function là: test
  1. CLASS: Trả về tên class mà PHP Magic Constant này được sử dụng. Magic Constant CLASS cũng hoạt động trong traits.
<?php
class JTPbase {
  public function getClassName() {
    echo __CLASS__;
  }
}

$obj = new JTPbase;
$obj->getClassName();
?>

Kết quả:

JTPbase
  1. TRAIT: Trả về tên trait mà PHP Magic Constant được sử dụng.
<?php
trait created_trait {
  public function showTraitName() {
    echo 'Tên của Trait là : ' . __TRAIT__;
  }
}

class MyClass {
  use created_trait;
}

$obj = new MyClass;
$obj->showTraitName();
?>

Kết quả:

Tên của Trait là : created_trait
  1. METHOD: Trả về tên của method class mà Magic Constant này được sử dụng. Tên method được trả về giống như khi nó được khai báo.
<?php
class method {
  function __construct() {
    echo "method:: construct\n";
  }

  function meth_fun() {
    echo "method:: meth_fun\n";
  }
}

$obj = new method;
echo "__METHOD__ chứa: " . __METHOD__ . "\n";
$obj->meth_fun();
?>

Kết quả:

__METHOD__ chứa: method::__construct
method:: construct
method:: meth_fun
  1. NAMESPACE: Trả về namespace hiện tại mà PHP Magic Constant này được sử dụng.
<?php
namespace Technical_Portal;

echo "Dòng này sẽ in ra khi gọi namespace. Namespace hiện tại là " . __NAMESPACE__;
?>

Kết quả:

Dòng này sẽ in ra khi gọi namespace. Namespace hiện tại là Technical_Portal
  1. ClassName::class: Trả về tên đầy đủ của ClassName. PHP Magic Constant này không bắt đầu và kết thúc bằng hai dấu gạch chân kép (). ClassName::class được thêm vào trong PHP 5.5.0 và hữu ích với các lớp được đặt tên không gian tên.
<?php
namespace Technical_Portal;
class laptrinhvien {
}

echo Technical_Portal\laptrinhvien::class;
?>

Kết quả:

Technical_Portal\laptrinhvien

Lưu ý: Nhớ rằng namespace phải là câu lệnh đầu tiên hoặc sau bất kỳ lời gọi nào trong tập lệnh, nếu không sẽ tạo ra lỗi nghiêm trọng.

Tóm tắt PHP Magic Constants

PHP Magic Constants là các hằng số được định nghĩa bởi PHP. Chúng bắt đầu và kết thúc bằng hai dấu gạch dưới (__). Các hằng số ma thuật thường được sử dụng để truy cập thông tin về trạng thái của tập lệnh hoặc đối tượng.

Dưới đây là một số ví dụ về các hằng số ma thuật trong PHP:

  • LINE: Giá trị của dòng hiện tại trong tập lệnh.
  • FILE: Đường dẫn đầy đủ đến tập lệnh hiện tại.
  • DIR: Thư mục chứa tập lệnh hiện tại.
  • CLASS: Tên của lớp đang được thực thi.
  • FUNCTION: Tên của hàm đang được thực thi.
  • METHOD: Tên của phương thức đang được thực thi.
  • NAMESPACE: Tên không gian tên hiện tại.

Dưới đây là một số ví dụ cụ thể về cách sử dụng PHP Magic Constants:

  • Truy cập thông tin về trạng thái của tập lệnh:
echo __LINE__; // 10
echo __FILE__; // /path/to/file.php
echo __DIR__; // /path/to/
  • Truy cập thông tin về lớp hoặc đối tượng:
class MyClass {
  public function __construct() {
    echo __CLASS__; // MyClass
  }
}

$my_class = new MyClass();
echo __CLASS__; // MyClass

Như bạn có thể thấy, PHP Magic Constants là một công cụ rất mạnh mẽ có thể được sử dụng để truy cập thông tin về trạng thái của tập lệnh hoặc đối tượng. Chúng có thể được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như:

  • Truy cập thông tin về trạng thái của tập lệnh hoặc đối tượng.
  • Tạo mã linh hoạt và dễ đọc.
  • Tối ưu hóa hiệu suất của mã.

Dưới đây là một số mẹo sử dụng PHP Magic Constants:

  • Sử dụng các Magic Constants một cách có trách nhiệm. Không nên lạm dụng các Magic Constants, vì chúng có thể làm cho mã khó hiểu và khó bảo trì.
  • Kiểm tra giá trị của các Magic Constants trước khi sử dụng chúng. Các Magic Constants có thể không luôn luôn có giá trị.
  • Sử dụng các PHP Magic Constants một cách nhất quán.

Ưu và Nhược điểm PHP Magic Constants

Ưu điểm:

  • Cung cấp thông tin tại thời điểm biên dịch mã.
  • Giúp cho việc khai báo các đường dẫn trở nên dễ dàng hơn và chính xác hơn.
  • Cho phép đưa ra thông tin về class, method, function.

Nhược điểm:

  • Không cho phép thay đổi giá trị của PHP Magic Constants.
  • Khó kiểm soát khi sử dụng với quá nhiều hằng số.

Lời khuyên PHP Magic Constants

  • Hãy sử dụng PHP Magic Constants khi bạn cần truy xuất các thông tin tại thời điểm biên dịch mã.
  • Không sử dụng quá nhiều Magic Constants để tránh việc làm cho mã nguồn trở nên rối và khó bảo trì.

Magic Constants trong PHP được s ử dụng như thế nào?

Magic Constants trong PHP được sử dụng bằng cách gọi tên của chúng. Ví dụ: FILE để truy cập đường dẫn đến tệp hiện tại.

Có bao nhiêu Magic Constants trong PHP?

Hiện tại có 9 Magic Constants trong PHP.

Tại sao lại sử dụng Magic Constants trong PHP?

PHP Magic Constants cung cấp thông tin tại thời điểm biên dịch mã, điều này giúp cho việc khai báo các đường dẫn trở nên dễ dàng hơn và chính xác hơn.

Làm thế nào để sử dụng Magic Constants trong PHP?

Bạn chỉ cần gọi tên của PHP Magic Constant để truy xuất thông tin tương ứng.

Magic Constant NAMESPACE có thể được sử dụng ở đâu trong PHP?

NAMESPACE có thể được sử dụng bất cứ đâu trong mã nguồn PHP, miễn là nó nằm trong một namespace.