Hằng số

Hằng số

Định nghĩa hằng số trong PHP có nhiều cách. Có thể sử dụng hàm define() hoặc sử dụng từ khóa const.

Sử dụng hàm define()

Sử dụng hàm define() với tham số đầu tiên là string tên hằng, tham số thứ hai là giá trị của hằng số có thể sử dụng giá trị tùy ý.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
define("CONSTANT", "Hello World");
define('PI', 3.14159);

// chỉ chạy trên PHP 7
define("CONSTANT_ARRAY", ["Hello", "World"]);

echo CONSTANT; // Hello World
var_dump(CONSTANT_ARRAY);
echo PI; // 3.14159

Sử dụng từ khóa const

Khi sử dụng với từ khóa const với kiểu dữ liệu vô hướng như (boolean, integer, floatstring). Từ phiên bản PHP 5.6 có thể sử dụng const với các biểu thức và sử dụng kiểu mảng.

1
2
3
4
5
6
7
8
<?php
const PI = 3.14;
const ANIMALS = ['mèo', 'chó', 'thỏ']; // PHP 5.6
const DOUBLE_PI = PI * 2; // PHP 5.6

echo PI;
var_dump(ANIMALS); 
echo DOUBLE_PI;

Khác biệt giữa hằng và biến:

  • Tên hằng số không có dấu dolla ($) giống như biến
  • Trước phiên bản PHP 5.3 chỉ có thể sử dụng hàm define() để định nghĩa hằng.
  • Hằng khi được định nghĩa và sẽ được truy cập bất cứ đâu trong chương trình.
  • Hằng chỉ chấp nhận các kiểu vô hướng như (boolean, integer, float and string). Kiểu mảng và biểu thức cũng có thể được sử dụng từ PHP 7.

Các hằng được định nghĩa trước (Magic constant)

Các hằng được định nghĩa trước được liệt kê như sau:

Tên hằng Mô tả
__LINE__ giá trị dòng hiện tại
__FILE__ đường dẫn tuyệt đối tới file hiện tại, nếu là include thì chỉ là tên file
__DIR__ tên thư mục hiện tại
__FUNCTION__ Tên hàm
__CLASS__ Tên class
__TRAIT__ Tên trail (từ phiên bản PHP 5.4)
__METHOD__ Tên method
__NAMESPACE__ Tên namespace
ClassName::class Tên đầy đủ của class - tên class chứa namespace (từ PHP 5.5)