Hằng số trong PHP



Một hằng (constant) là một tên hoặc một định danh cho một giá trị đơn. Giá trị của hằng không thể thay đổi trong quá trình thực thi script. Theo mặc định, một hằng là phân biệt kiểu chữ. Theo qui ước, các định danh hằng luôn luôn là chữ hoa. Tên hằng bắt đầu với một chữ cái hoặc dấu gạch dưới ( _ ), được theo sau bởi bất kì số lượng chữ cái, số hoặc dấu gạch dưới nào. Nếu bạn đã định nghĩa một hằng số, nó có thể không bao giờ được thay đổi hoặc định nghĩa lại.

Để định nghĩa một hằng số trong PHP, bạn phải sử dụng hàm define() và để lấy giá trị của một hằng, bạn phải chỉ ra tên của nó. Không giống như biến, bạn không cần thêm $ vào hằng. Bạn cũng có thể sử dụng hàm constant() để đọc một 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.

Hàm constant() trong PHP

Như tên hàm đã đề cập, hàm này sẽ trả về giá trị của hằng số.

Điều này là rất hữu ích khi bạn muốn lấy giá trị của một hằng, nhưng bạn không biết tên của nó, ví du: nó được lưu giữ trong một biến hoặc được trả về bởi một hàm.

Ví dụ hàm constant() trong PHP


Chỉ có dữ liệu vô hướng (Boolean, integer, float và string) có thể được giữ trong các hằng số.

Khác nhau giữa hằng số và biến trong PHP là:

  • Để định nghĩa biến cần viết kí tự $ vào trước, ngược lại hằng thì không cần.

  • Hằng không thể được định nghĩa bằng phép gán đơn giản, chúng chỉ có thể được định nghĩa bằng cách sử dụng hàm define().

  • Hằng có thể được định nghĩa và truy cập bất cứ đâu mà không quan tâm đến quy tắc phạm vi biến.

  • Một hằng khi đã được định nghĩa, nó không thể định nghĩa lại hoặc hủy định nghĩa.

Tên hằng hợp lệ và không hợp lệ trong PHP

// Ví dụ các tên hằng hợp lệ
define("ONE",     "Ví dụ tên hằng hợp lệ 1");
define("TWO2",    "Ví dụ tên hằng hợp lệ 2");
define("THREE_3", "Ví dụ tên hằng hợp lệ 3")// Ví dụ các tên hằng không hợp lệ
define("2TWO",    "Ví dụ tên hằng không hợp lệ 1");
define("__THREE__", "Ví dụ tên hằng không hợp lệ 2"); 

Hằng số Magic trong PHP

PHP cung cấp một số lượng lớn các hằng số được định nghĩa trước để bất kỳ script nào cũng có thể sử dụng nó.

Có 5 hằng số magic, 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 mà nó được sử dụng trong script của bạn. Các hằng đặc biệt này là phân biệt kiểu chữ.

Bảng dưới liệt kê một số hằng magic trong PHP:

Tên Miêu tả
__LINE__ Dòng hiện tại của file
__FILE__ Đường dẫn đầy đủ và tên đầy đủ của file. Nếu sử dụng bên trong một include thì tên của file được include sẽ được trả về. Từ PHP 4.0.2, __FILE__ luôn luôn chưa một đường dẫn tuyệt đối, trong khi ở phiên bản cũ hơn chúng chứa đường dẫn tương đối trong một số trường hợp
__FUNCTION__ Tên của hàm. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của hàm như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4, giá trị của nó luôn là chữ in thường
__CLASS__ Tên của lớp. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của lớp như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4 giá trị của nó luôn là chữ in thường
__METHOD__ Tên phương thức lớp. (Được thêm trong PHP 5.0.0) Tên phương thức này được trả về như đã khai báo trước đó (phân biệt kiểu chữ).

Các bài học PHP phổ biến khác tại VietJack: