Khái niệm về hằng số trong PHP

Hằng số là một tên hay định danh cho một giá trị đơn giản. Gọi là hằng số bởi vì giá trị ứng với tên hằng sau khi định nghĩa là không đổi trong quá trình thi hành script. Mặc định hằng số có phân biệt chữ hoa chữ thường. Thông thường viết code thì ta nên đặt tên hằng số bằng các ký tự viết hoa. 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 (_), theo sau không được chứa các ký tự đặc biệt.

Định nghĩa hằng số với hàm define

bool define ( string $name , mixed $value)

Để định nghĩa một hằng số bạn phải sử dụng hàm define() trong đó $name là tên hằng số, và $value là giá trí gán cho hằng số, giá trị hằng số phải là một trong các kiểu: boolean, integer, float string

Để lấy giá trị hằng bạn chỉ cần chỉ ra tên hằng, trong trường hợp bạn dùng biến lưu trữ tên hằng thì lấy giá trị của hằng bằng hàm constant($name).

<?php 
 
define("FIRSTWEEKDAY", 'MONDAY'); 
 
echo FIRSTWEEKDAY; //Lấy hằng số bằng cách chỉ ra tên

$firstweek = 'FIRSTWEEKDAY' 

echo constant($firstweek); // lấy hằng số có tên lưu trong biến $firstweek 
 
?> 

Sự khác nhau giữa hằng số và biến

  • Tên hằng số thi không cần bắt đầu bằng ký tự dollar $ 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 nó phải được xác định duy nhất tại hàm define.
  • Hằng số có thể truy cập bất cứ ở đâu mà không giới hạn phạm vị như biến.
  • Ngay sau khi giá trị hằng thiết lập, nó không bị thay đổi hay định nghĩa lại nữa.

Các hằng số đặc biệt trong PHP

PHP cung cấp một số lượng lớn các hằng đã định nghĩa sẵn, một số hằng rất đặc biệt gọi là Magic constant.  Dưới đây là một số hằng Magic (ma thuật):

Tên hằng Mô tả
__LINE__ Dòng hiện tại của php file.
__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 mothod của lớp
__NAMESPACE__ Lấy tên namspace
ClassName::clas Tên đầy đủ của một lớp