Hằng số là tên hoặc mã định danh cho một giá trị đơn giản. Một giá trị không đổi không thể thay đổi trong quá trình thực thi tập lệnh. Theo mặc định, hằng số phân biệt chữ hoa chữ thường. Theo quy ước, các định danh hằng luôn là chữ hoa. Tên hằng số bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là bất kỳ số lượng chữ cái, số hoặc dấu gạch dưới nào. Nếu bạn đã xác định một hằng số, nó không bao giờ có thể bị thay đổi hoặc không được xác định.
Để xác định một hằng số, bạn phải sử dụng hàmdefine() và để truy xuất giá trị của một hằng số, bạn chỉ cần chỉ định tên của nó. Không giống như với các biến, bạn không cần phải có một hằng với $. Bạn cũng có thể sử dụng hàm constant() để đọc giá trị của hằng nếu bạn muốn lấy tên của hằng một cách linh hoạt.
constant() function
Như tên gọi, hàm này sẽ trả về giá trị của hằng số.
Điều này hữu ích khi bạn muốn truy xuất giá trị của một hằng số, nhưng bạn không biết tên của nó, tức là Nó được lưu trữ trong một biến hoặc được trả về bởi một hàm.
ví dụ
<?php define("MINSIZE", 50); echo MINSIZE; echo constant("MINSIZE"); // same thing as the previous line ?>
Chỉ có thể chứa dữ liệu vô hướng (boolean, integer, float và string) trong hằng số.
Sự khác nhau giữa hằng và biến là
- Không cần phải viết ký hiệu đô la ($) trước một hằng số, như trong Biến, người ta phải viết ký hiệu đô la.
- Các hằng số không thể được xác định bằng phép gán đơn giản, chúng chỉ có thể được xác định bằng cách sử dụng hàmdefine().
- Các hằng số có thể được xác định và truy cập ở bất cứ đâu mà không cần quan tâm đến các quy tắc phạm vi của biến.
- Khi các Hằng số đã được đặt, có thể không được xác định lại hoặc không xác định.
Tên hằng hợp lệ và không hợp lệ
// Valid constant names define("ONE", "first thing"); define("TWO2", "second thing"); define("THREE_3", "third thing"); define("__THREE__", "third value"); // Invalid constant names define("2TWO", "second thing");
Hằng số hệ thống của PHP
PHP cung cấp một số lượng lớn các hằng số được xác định trước cho bất kỳ tập lệnh nào mà nó chạy.
Có năm hằng số ma thuật thay đổi tùy thuộc vào nơi chúng được sử dụng. Ví dụ: giá trị của __LINE__ phụ thuộc vào dòng được sử dụng trong tập lệnh của bạn. Các hằng số đặc biệt này không phân biệt chữ hoa chữ thường và như sau –
Một vài hằng số PHP “kỳ diệu” được đưa ra dưới đây –
Sơ Không | Tên & Mô tả |
---|---|
1 | __LINE__
Số dòng hiện tại của tệp. |
2 | __FILE__
Đường dẫn đầy đủ và tên tệp của tệp. Nếu được sử dụng bên trong một tệp bao gồm, tên của tệp được bao gồm sẽ được trả về. Kể từ PHP 4.0.2, __FILE__ luôn chứa đường dẫn tuyệt đối trong khi ở các phiên bản cũ hơn, nó chứa đường dẫn tương đối trong một số trường hợp. |
3 | __FUNCTION__
Tên chức năng. (Đã thêm trong PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên hàm như nó đã được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn được viết thường. |
4 | __CLASS__
Tên lớp. (Đã thêm trong PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên lớp như nó đã được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn được viết thường. |
5 | __METHOD__
Tên phương thức của lớp. (Đã thêm trong PHP 5.0.0) Tên phương thức được trả về như đã được khai báo (phân biệt chữ hoa chữ thường). |