Hằng số trong PHP là một tên (dịnh danh) cho một giá trị đơn giản không quá phức tạp. Tuy có các khái niệm như Define, Defined và Const, nhưng chúng đều liên quan đến việc định nghĩa và sử dụng hằng số.
Hằng số là gì trong PHP?
Hằng số được gọi là "hằng số" vì giá trị ứng với tên hằng sau khi định nghĩa là không đổi trong quá trình thực thi của PHP. Thông thường, ta nên đặt tên hằng số bằng các ký tự IN HOA, theo nguyên tắc đặt tên chung của PHP. Một hằng số phải bắt đầu bằng một ký tự chữ (a-Z) hoặc gạch dưới (_), và không chứa các ký tự đặc biệt.
Define là gì trong PHP?
Define là một hàm của PHP dùng để khai báo và định nghĩa cho một hằng số. Hàm define này hoạt động trong các phiên bản PHP từ PHP 4, PHP 5, PHP 7 đến PHP 8. Define là một hàm quan trọng và tồn tại trong PHP từ rất lâu.
Cú pháp và kiểu dữ liệu của hàm define:
define(string $name, mixed $value, bool $case_insensitive = false): bool
$name
: Tên của hằng.$value
: Giá trị của hằng.$case_insensitive
: True nếu không phân biệt chữ hoa chữ thường, ngược lại là false.- Giá trị trả về: True hoặc false.
Defined là gì trong PHP?
Hàm defined() là một hàm trong PHP dùng để kiểm tra xem một hằng số đã được định nghĩa hay chưa. Hàm này trả về giá trị kiểu bool (True hoặc False), không có giá trị giữa. Để kiểm tra, ta sử dụng cú pháp sau:
defined(string $name): bool
Ví dụ: defined('LPTECH_IP');
sẽ trả về True nếu hằng số đã được khai báo, và False nếu không.
Const là gì trong PHP?
Từ khóa const cũng giống như hàm define, dùng để khai báo một hằng số. Tuy nhiên, có một số khác biệt giữa const và define. Từ PHP 5.3.0 trở đi, ta có thể sử dụng từ khóa const để định nghĩa hằng số. Từ PHP 7, ta còn có thể định nghĩa hằng số bằng một mảng các giá trị.
Ví dụ:
// Định nghĩa hằng số bằng từ khóa const
const MONDAY = "THỨ HAI";
echo MONDAY, PHP_EOL; // "THỨ HAI"
// Hằng số là một mảng các ký tự
const DAYOFWEEK = [
'CHỦ NHẬT',
'THỨ HAI',
'THỨ BA',
'THỨ TƯ',
'THỨ NĂM',
'THỨ SAU',
'THỨ BẢY',
];
// Truy cập đọc hằng số
echo DAYOFWEEK[6]; // "THỨ BẢY"
Sự khác nhau giữa hằng số và biến
Có một số sự khác nhau giữa hằng số và biến trong PHP:
- Tên hằng số không cần bắt đầu bằng ký tự đô la $ như biến.
- Hằng số không thể sử dụng phép gán giá trị (=) như biến. Giá trị của hằng số phải được xác định duy nhất tại thời điểm định nghĩa.
- Hằng số có thể truy cập ở bất kỳ đâu mà không giới hạn phạm vi như biến.
- Sau khi được thiết lập, giá trị của hằng số không thay đổi và không thể định nghĩa lại.
Các hằng số được khai báo sẵn trong PHP
PHP cung cấp một số lượng lớn các hằng đã được định nghĩa sẵn từ phiên bản PHP ban đầu. Một số hằng đặc biệt này được gọi là "Magic constant". Để xem phiên bản PHP đang sử dụng có khai báo sẵn những hằng số nào, ta có thể sử dụng đoạn mã sau:
$lptech_constant_list = get_defined_constants(true);
echo '';
var_dump($lptech_constant_list);
echo '
';
die;
Dưới đây là một số hằng số có sẵn từ phiên bản PHP:
__LINE__
: Dòng hiện tại của file PHP.__FILE__
: Tên file đầy đủ của script đang thi hành.__DIR__
: Tên thư mục đầy đủ của file PHP.__FUNCTION__
: Lấy tên của hàm đang chạy.__CLASS__
: Tên của lớp đang chạy.__TRAIT__
: Tên của trait đang chạy.__METHOD__
: Lấy tên method của lớp.__NAMESPACE__
: Lấy tên namespace.ClassName::clas
: Tên đầy đủ của một lớp.
Chúc các bạn thành công trong việc tìm hiểu về hằng số trong PHP!