PHP Constants – Hằng số trong PHP

Php constants hằng số trong php

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à WIDTHwidth 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óa const để đị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.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...