Hằng số trong PHP là các giá trị không thay đổi trong quá trình thực thi của chương trình trong ngôn ngữ PHP nói riêng và ngôn ngữ lập trình nói chung. Chúng được định nghĩa một lần và không thể thay đổi sau đó. Mục tiêu của việc sử dụng hằng số là để định rõ các giá trị quan trọng và tránh việc ‘hard code’ (viết trực tiếp) các giá trị trong mã nguồn. Hãy cùng Vietnix tìm hiểu thêm về hằng số trong PHP cũng như cách sử dụng qua bài viết dưới đây.
Hằng số trong PHP là gì?
Hằng số trong PHP, tương tự như trong các ngôn ngữ lập trình khác, là một giá trị không thay đổi trong suốt quá trình thực thi chương trình. Hoạt động giống như một biến, nhưng một khi đã được gán giá trị, bạn không thể thay đổi giá trị đó nữa.
Quy ước đặt tên và khai báo hằng số:
- Quy ước: Tên hằng số thường được viết in hoa để phân biệt với các biến khác.
- Phân biệt chữ hoa chữ thường: Mặc định, PHP phân biệt chữ hoa chữ thường trong tên hằng số.
- Bắt đầu bằng chữ cái hoặc dấu gạch dưới: Tên hằng số phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới (_), không được bắt đầu bằng số hoặc ký tự đặc biệt.
- Khai báo: Hằng số được khai báo bằng hàm
define()
hoặc từ khóaconst
.
Cú pháp khởi tạo:
Hàm define()
trong PHP được dùng để khởi tạo một hằng số:
define(name, value, case_insensitive)
Trong đó có các thành phần sau:
name | Tên của hằng số |
value | Giá trị sẽ được gán vào biến này |
case_insensitive | Xác định trường hợp chữ hoa hay chữ thường (mặc định là False, là phân biệt chữ hoa chữ thường) – (Hiện đã loại bỏ) |
Ví dụ:
<?php
// This creates a case-sensitive constant
define("WELCOME", "Vietnix Hosting");
echo WELCOME, "\n";
// This creates a case-insensitive constant
define("HELLO", "Vietnix Hosting", true);
echo hello;
?>
Output bạn sẽ thấy như sau:
ERROR! Vietnix Hosting Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in /tmp/medaIXTB6F.php on line 9 Fatal error: Uncaught Error: Undefined constant "hello" in /tmp/medaIXTB6F.php:10 Stack trace: #0 {main} thrown in /tmp/medaIXTB6F.php on line 10
Trong đoạn kết quả người dùng thấy được một cảnh báo và một lỗi, bao gồm:
- Cảnh báo về việc tính năng
case_insensitive
(đã không còn được hỗ trợ nữa). - Lỗi không xác định được hằng số tên “hello” trong đoạn code. Dù tính năng trên bị loại bỏ nhưng trong PHP nói chung thì hằng số vẫn xem là một biến, 2 cái tên khác nhau dẫn đến việc có 2 biến khác nhau.
Hàm constant()
là một cách khác để dùng thay cho lệnh echo
, in ra hằng số trong hàm.
constant(name)
Ví dụ:
<?php
define("WELCOME", "Vietnix Hosting!!!");
echo WELCOME, "\n";
echo constant("WELCOME");
// same as previous
?>
Output như sau:
Vietnix Hosting!!!
Vietnix Hosting!!!
Ví dụ:
<?php
define("WELCOME", "Vietnix Hosting");
function testGlobal() {
echo WELCOME;
}
testGlobal();
?>
Output như sau:
Vietnix Hosting
Hằng số và biến số
Hằng số | Biến số |
Giá trị không bao giờ thay đổi | Có thể thay đổi |
Không cần dùng dấu $ trước giá trị | Buộc phải có ở trước giá trị biến |
Chỉ có thể xác định bằng hàm define() | Có thể dùng nhiều cách xác định |
Có thể gán mọi lúc | Cần tuân theo quy tắc phạm vi biến |
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về hằng số trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình PHP, chúc bạn thành công!