Tóm tắt: Trong bài hướng dẫn này, bạn đã học về các hằng số PHP và cách sử dụng hàm define()
và từ khóa const
để định nghĩa các hằng số php constants.
Giới thiệu về hằng số PHP
Một hằng số đơn giản là một tên mà giữ một giá trị duy nhất. Như tên của nó ngụ ý, giá trị của một hằng số không thể thay đổi trong quá trình thực thi của script PHP.
Để định nghĩa một hằng số, bạn sử dụng hàm define()
. Hàm define()
nhận tên của hằng số làm đối số đầu tiên và giá trị của hằng số làm đối số thứ hai. Ví dụ:
<?php define('WIDTH','1140px'); echo WIDTH;
Theo quy ước, tên hằng số được viết hoa. Khác với biến, tên của hằng số không bắt đầu bằng dấu dollar ($
).
Mặc định, tên của hằng số phân biệt chữ hoa chữ thường. Điều này có nghĩa là WIDTH
và width
là hai hằng số khác nhau.
Điều này có thể định nghĩa các hằng số không phân biệt chữ hoa chữ thường. Tuy nhiên, từ PHP 7.3 trở đi đã bị lỗi thời.
Trong PHP 5, một hằng số có thể giữ một giá trị đơn giản như một số, một chuỗi, một giá trị boolean. Từ PHP 7.0, một hằng số có thể giữ một mảng. Ví dụ:
<?php define( 'ORIGIN', [0, 0] );
Tương tự như các biến siêu toàn cục, bạn có thể truy cập các hằng số từ bất kỳ đâu trong script.
Từ khóa const
PHP cung cấp cho bạn một cách khác để định nghĩa một hằng số (constants) thông qua từ khóa const
. Dưới đây là cú pháp:
const CONSTANT_NAME = value;
Trong cú pháp này, bạn định nghĩa tên của hằng số sau từ khóa const
. Để gán một giá trị cho hằng số, bạn sử dụng toán tử gán (=) và giá trị của hằng số. Giá trị của hằng số có thể là scalars, ví dụ, một số, một chuỗi, hoặc một mảng.
Ví dụ sau sử dụng từ khóa const
để định nghĩa hằng số SALES_TAX
:
<?php const SALES_TAX = 0.085; $gross_price = 100; $net_price = $gross_price * (1 + SALES_TAX); echo $net_price; // 108.5
Ví dụ sau sử dụng từ khóa const
để định nghĩa hằng số RGB giữ một mảng:
<?php const RGB = ['red', 'green', 'blue'];
Hàm define() vs từ khóa const
Thứ nhất, hàm define()
là một hàm trong khi từ khóa const
là một cấu trúc ngôn ngữ.
Điều này có nghĩa là hàm define()
định nghĩa một hằng số tại thời gian chạy, trong khi từ khóa const
định nghĩa một hằng số tại thời gian biên dịch.
Nói cách khác, bạn có thể sử dụng hàm define()
để định nghĩa một hằng số có điều kiện như sau:
<?php if(condition) { define('WIDTH', '1140px'); }
Tuy nhiên, bạn không thể sử dụng từ khóa const
để định nghĩa một hằng số theo cách này. Ví dụ, cú pháp của đoạn mã sau là không hợp lệ:
<?php if(condition) { const WIDTH = '1140px'; }
Thứ hai, hàm define() cho phép bạn định nghĩa một hằng số với tên xuất phát từ một biểu thức.
VD: đoạn mã sau định nghĩa ba hằng số OPTION_1, OPTION_2 và OPTION_3 tương ứng giá trị 1, 2 và 3.
<?php define('PREFIX', 'OPTION'); define(PREFIX . '_1', 1); define(PREFIX . '_2', 2); define(PREFIX . '_3', 3);
Tuy nhiên, bạn không thể sử dụng const để định nghĩa hằng số được tạo ra từ một biểu thức.
Trừ khi bạn muốn định nghĩa một hằng số có điều kiện hoặc sử dụng một biểu thức.
Bạn có thể sử dụng từ khóa const để định nghĩa hằng số để làm cho mã nguồn rõ ràng hơn.
Lưu ý rằng bạn có thể sử dụng từ khóa const để định nghĩa hằng số trong các lớp.
Tóm tắt
- Constants là một tên giữ một giá trị đơn giản không thể thay đổi trong quá trình thực thi php code.
- Từ PHP7, một hằng số có thể giữ một mảng.
- Một hằng số có thể truy cập từ bất kỳ đâu trong script.
- Sử dụng hàm
define()
hoặc từ khóaconst
để định nghĩa một hằng số. - Sử dụng hàm
define()
nếu bạn muốn định nghĩa một hằng số có điều kiện hoặc sử dụng một biểu thức.