Hướng dẫn dùng define coalescence trong PHP

Hằng số là một tên (dị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ự IN 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.

Nếu dùng biểu thức chính quy đề kiểm tra đặt tên là phù hợp, thì biểu thức đó là:

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

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

Để định nghĩa một hằng số bạn phải sử dụng hàm define() với cú pháp của hàm đó như sau:

define ( string $name , mixed $value) : bool

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: 

define ( string $name , mixed $value) : bool
0,
define ( string $name , mixed $value) : bool
1,
define ( string $name , mixed $value) : bool
2 và
define ( string $name , mixed $value) : bool
3.

Để lấy giá trị hằng bạn chỉ cần chỉ ra tên hằng, hằng số có phạm vi toàn cục, có nghĩa là sau khi định nghĩa bạn có thể truy cập nó ở bất kỳ đâu.

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

define ( string $name , mixed $value) : bool
4.

 

Khi bạn định nghĩa một hằng số, nếu trước đó đã định nghĩa sẽ dẫn tới lỗi. Khi cần thiết, bạn có thể kiểm tra xem một hằng số đã được định nghĩa hay chưa bằng hàm

define ( string $name , mixed $value) : bool
5

// Kiểm tra xem hằng số MYCOLOR có tồn tại không, nếu không
// thì bắt đầu định nghĩa
if (!defined('MYCOLOR'))
{
    define('MYCOLOR', 'Green');
}

Định nghĩa hằng với từ khóa define ( string $name , mixed $value) : bool 6

Với PHP 5.3.0 trở đi thì có thể dùng từ khóa

define ( string $name , mixed $value) : bool
6 để định nghĩa hằng số, từ PHP 7 còn có thể định nghĩa hằng số bằng một mảng các giá trị, ví dụ:

// Định nghĩa hằng số bằng từ khóa const
const MONDAY = "THỨ HAI";
echo MONDAY, PHP_EOL;

// hằng số là một mảng các ký tự
const DAYOFWEEK = [
    'CHỦ NHẬT', 'THỨ HAI', 'THỨ BA', 'THỨ TƯ', 'THỨ NĂM', 'THỨ SAU', 'THỨ BẢY',
];
// Truy cập đọc hằng số
echo DAYOFWEEK[6]; // THỨ BẢY

Dùng từ khóa

define ( string $name , mixed $value) : bool
6 cũng là cách tạo hằng số cho một lớp ở phần lập trình hướng đối tượng PHP

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
    define ( string $name , mixed $value) : bool
    
    9 như biến.
  • Hằng số không thể sử dụng phép gán giá trị như biến (
     
    0), 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 (Magic Constant) 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à

 
1.  Dưới đây là một số hằng Magic (ma thuật):

Tên hằngMô tả
 
2Dòng hiện tại của php file.
 
3

Tên file đầy đủ của script đang thi hành.

 
4Tên thư mục đầy đủ của file PHP
 
5Lấy tên của hàm đang chạy
 
6Tên của lớp đang chạy
 
7Tên của trait đang chạy
 
8Lấy tên mothod của lớp
 
9Lấy tên namspace
// Kiểm tra xem hằng số MYCOLOR có tồn tại không, nếu không
// thì bắt đầu định nghĩa
if (!defined('MYCOLOR'))
{
    define('MYCOLOR', 'Green');
}
0Tên đầy đủ của một lớp

Các hằng số định nghĩa trước trong PHP

Khi PHP hoạt động có vô số hằng số, một số định nghĩa bởi nhân của PHP, một số do các thành phần mở rộng (Extension), để lấy các hằng số đã định nghĩa thì dùng hàm

// Kiểm tra xem hằng số MYCOLOR có tồn tại không, nếu không
// thì bắt đầu định nghĩa
if (!defined('MYCOLOR'))
{
    define('MYCOLOR', 'Green');
}
1, nó trả về mảng các hằng số có trong PHP đang hoạt động của bạn

$allConst = get_defined_constants(true);
print_r($allConst);

Một số hằng số đã định nghĩa trước bởi nhân PHP tham khảo tại: reserved.constants, ví dụ

// Kiểm tra xem hằng số MYCOLOR có tồn tại không, nếu không
// thì bắt đầu định nghĩa
if (!defined('MYCOLOR'))
{
    define('MYCOLOR', 'Green');
}
2 là ký tự xuống dòng.

Đã nói đến lập trình PHP thì bạn không thể bỏ qua khái niệm hằng số trong PHP. Trong bài viêt này, T3H sẽ hướng dẫn bạn 

Cách xác định hằng số trong PHP

Để xác định một hằng số trong PHP, bạn phải sử dụng hàm define () và truy xuất giá trị của một hằng số, bạn sẽ cần chỉ định rõ ràng tên của nó. Không giống như các biến, bạn sẽ không cần bắt đầu một hằng số bằng ký hiệu $. Bạn cũng có thể sử dụng constant () để đọc giá trị của hằng số nếu bạn muốn lấy tên của hằng số một cách linh hoạt.

Tổng quan về hằng số trong PHP

Hằng số là tên hoặc mã định danh cho một giá trị đơn giản. Một giá trị hằng số không thể thay đổi  trong quá trình thực thi tập lệnh. Theo mặc định, một hằng số có phân biệt chữ hoa và chữ thường.

Theo quy ước, các định danh hằng số luôn phải được viết hoa. Tên các  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ố, chữ cái hoặc dấu gạch dưới nào. Nếu bạn đã các định một hằng số, nó sẽ không thể bị thay đổi được hoặc khó có thể xác định được.

>>> Đọc thêm: Cú pháp cơ bản trong PHP - 2 phút nằm lòng về cú pháp PHP

Hàm constant () - hằng số trong PHP

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

Ví dụ về constant () - hằng số trong PHP

   define("MINSIZE", 50);

   echo MINSIZE;

   echo constant("MINSIZE"); // same thing as the previous line

?>

Chỉ các dữ liệu vô hướng chẳng hạn như boolean, số nguyên, float, string,.. mới có thể được chứa trong hằng số.

>>> Tham khảo: Khóa học lập trình PHP

Sự khác biệt giữa biến và hằng số trong PHP

  • Không cần sử dụng ký hiệu $ trước hằng số, trong khi trong biến, bạn sẽ cần viết ký hiệu $ này
  • 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 xác định bằng cách sử dụng hàm define ().
  • Các hằng số có thể được định nghĩa và truy cập ở bất kỳ đâu mà không cần quan tâm đến các quy tắc xác định phạm vi thay đổi.
  • Sau khi các hằng số đã được thiết lập, có thể không được xác định lại hoặc không được xác định

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

// 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");

>>> Đọc thêm: CakePHP - Hướng dẫn về Framework CakePHP cho người mới bắt đầu

Hằng số ma thuật trong 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 mà nó đượ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.

Dưới đây là một vài hằng số PHP "kỳ diệu”

STT

Tên và mô tả

1

__LINE__

Số dòng hiện tại của tệp tin

2

__FILE__

Đường dẫn đầy đủ và tên tệp của tệp. Nếu được sử dụng bên trong 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 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 chức năng. (Được thêm vào trong 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 là chữ thường.

4

__CLASS__

Tên lớp. (Được thêm vào trong 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 là chữ thường.

5

__METHOD__

Tên phương thức lớp. (Được thêm trong PHP 5.0.0) Tên phương thức được trả về như khi nó được khai báo (phân biệt chữ hoa chữ thường).

Kết luận: Trên đây là những thông tin chung về hằng số trong PHP. Bên cạnh các kiểu dữ liệu quan trọng khác, hằng số cũng là yếu tố mà lập trình viên cần nắm rõ. Mong rằng những thông tin này hữu ích với bạn trong quá trình tìm hiểu về PHP. Nếu bạn muốn tìm hiểu thêm về PHP và những ngôn ngữ lập trình khác. Đừng quên tham khảo các khóa học lập trình tại T3H bạn nhé!