Hằng số trong PHP

Hằng số là gì?

Hằng số là tên hoặc mã định danh cho một giá trị đơn giản. Giá trị của hằng số thì 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, hằng số luôn luôn là chữ hoa.

Một tên hằng 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ếu bạn đã định nghĩa một hằng số, nó không thể thay đổi hoặc không xác định (undefined).

Để định nghĩa một hằng số, bạn phải sử dụng hàm define() và bạn chỉ cần chỉ định tên của hằng số để lấy giá trị của nó.

Không giống như với các biến, bạn không cần phải phải khai báo hằng số bắt đầu 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.

Hàm constant()

Giống như tên gọi của nó, hàm này sẽ trả về giá trị của hằng.

Điều này rất hữu ích khi bạn muốn lấy giá trị của 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.

<?php
   define("MINSIZE", 50);
   
   echo MINSIZE;
   echo constant("MINSIZE"); // same thing as the previous line
?>

Chỉ những dữ liệu kiểu boolean, integer, float và string mới có thể được chứa trong các hằng số.

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

  • Không cần phải khai báo ký tự $ trước một hằng số, trong khi đó cần phải khai báo ký tự $ trước một biến.
  • Hằng số 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 số có thể được định nghĩa và truy cập ở bất cứ đâu mà không liên quan đến các quy tắc phạm vi truy cập giống như biến.
  • Khi các hằng số đã được gán giá trị, không thể định nghĩa lại hoặc không xác định (undefined).

Tên hằng số 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ố ma thuật PHP

PHP cung cấp một số lượng lớn các hằng số được định nghĩa 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.

Một vài hằng số ma thuật PHP được trình bày trong bảng dưới đây:

STT Mô tả
1

__LINE__

Số dòng hiện tại của file.

2

__FILE__

Đường dẫn đầy đủ và tên của file. Nếu được sử dụng bên trong một include, tên của file được include sẽ được trả về. Kể từ PHP 4.0.2, __FILE__ luôn chứa một đường dẫn tuyệt đối trong khi trong 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 hàm. (Đã thêm vào PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên hàm như được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn luôn được viết thường.

4

__CLASS__

Tên lớp. (Đã thêm vào PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên lớp như được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn luôn được viết thường.

5

__METHOD__

Tên phương thức 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).



Bài viết liên quan:

Hướng dẫn lập trình PHP toàn tập sẽ giúp bạn từng bước tìm hiểu và nắm vững ngôn ngữ lập trình PHP.

Hướng dẫn cách truy xuất, lọc, sắp xếp dữ liệu MySQL trong PHP sử dụng MySQLi và PDO.

MySQL prepared statements trong PHP rất hữu ích để chống lại các cuộc tấn công SQL Injection.