Cách dùng Enum trong PHP 8
Enum là một trong số tính năng cơ bản của nhiều ngôn ngữ lập trình và PHP cũng không ngoại lệ. Dưới đây là mọi điều bạn cần biết về Enum trong PHP.

Enumeration (enum) là một kiểu dữ liệu mà bạn có thể dùng để lưu một giá trị từ một bộ tùy chỉnh. Chúng là lựa chọn hoàn hảo để đại diện cho kiểu tùy chọn mà bạn có thể hiện trong một danh sách thả xuống.
PHP 8.1 hiện đã hỗ trợ enum. Sử dụng enum rất dễ nhưng chúng cung cấp thêm các tính năng được mượn từ lập trình hướng đối tượng.
Tác dụng của Enum
Enum hữu ích khi bạn muốn làm việc với một tập hợp cố định các giá trị liên quan. Ví dụ, bạn có thể dùng một enum để đại diện cho các bộ trong một gói thẻ hoặc kiểu phương tiện.
Enum của PHP khá phức tạp, với một số tính năng được vay mượn từ các lớp (class). Bạn có thể dùng chúng trong kết hợp với gợi ý kiểu để viết code dễ đoán và chặt chẽ hơn.
Enum cơ bản
Enum thường lưu trữ các giá trị vô hướng. Chúng tương tự như các kiểu dữ liệu nguyên thủy của C, dù enum của PHP có thể chứa những giá trị chuỗi cũng như số nguyên. Tuy nhiên, mặc định, những giá trị enum của PHP không có giá trị vô hướng tương đương. Chúng được gọi là enum cơ bản:
enum Season
{
case Spring;
case Summer;
case Autumn;
case Winter;
}Lưu ý cách PHP dùng lại từ khóa case mà bạn sẽ gặp phải trong lệnh switch. Những giá trị enum đại diện chỉ là tên của các trường hợp. Bạn có thể tham chiếu tới một giá trị enum cụ thể bằng lệnh sau:
EnumTypeName::EnumFieldVí dụ, để tham chiếu tới mùa đông, dùng:
Season::WinterBạn có thể gắn giá trị này cho một biến và kiểm tra nó dựa trên những giá trị Season khác:
$favorite = Season::Summer;
if ($favorite == get_current_season()) {
echo "It's my favorite season!";
}Dùng gợi ý kiểu, bạn có thể giới hạn các tham số hay kiểu trả về tới một enum cụ thể. Điều này giúp tránh một loạt lỗi và việc chỉnh sửa code cũng dễ dàng hơn:
function get_current_season(): Season
{
$day = date("z");
if ($day < 59 || $day > 333) return Season::Winter;
if ($day < 151) return Season::Spring;
if ($day < 243) return Season::Summer;
if ($day < 334) return Season::Autumn;
}Nếu hàm get_current_season cố gắng trả về một giá trị khác, không phải Season, PHP sẽ phát sinh lỗi TypeError nghiêm trọng.
Enum được hỗ trợ
PHP dùng thuật ngữ “backed enum” để tham chiếu tới một enum cùng với các giá trị. Chúng có thể là số nguyên hoặc chuỗi:
enum Month: int
{
case Jan = 1;
case Feb = 2;
//...
}Bạn cần khai báo kiểu enum được hỗ trợ và nó phải là int hoặc string. Bạn có thể truy cập giá trị cơ bản bằng cách dùng thuộc tính value chỉ đọc:
echo Month::Jan->value;Khi dùng enum được hỗ trợ, bạn cũng có thể chuyển đổi chúng, từ giá trị vô hướng tương đương, bằng phương thức from:
var_dump(Month::from(2));Các phương thức enum
PHP enum cũng có các phương thức, khiến chúng hơi giống một lớp rút gọn. Điều này cho thấy vị trí của PHP, nằm giữa ngôn ngữ theo thủ tục và hướng đối tượng.
Ví dụ, bạn có thể thêm phương thức đơn giản này vào enum Month để lấy số ngày từ một giá trị cụ thể:
/* Note: no leap-year handling! */
function daysInMonth(): int {
if ($this == Month::Feb) return 28;
if (in_array($this, array(Month::Apr, Month::Jun, Month::Sep, Month::Nov))) return 30;
return 31;
}Lưu ý, bạn có thể dùng $this để tham chiếu tới một giá trị enum cụ thể, giống như bạn dùng $this để tham chiếu tới một đối tượng nhất định. Bạn cũng có thể dùng toán tử ngang bằng chuẩn, ==, để so sánh các giá trị enum.
Enum cũng hỗ trợ các phương thức tĩnh. Ví dụ:
static function random(): Month {
return Month::from(rand(1, count(Month::cases())));
}Trên đây là những điều bạn cần biết về enum trong PHP. HI vọng bài viết hữu ích với các bạn.
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Đáp án Brain Out, giải Brain Out level 1 đến level 255
Hôm qua -

Cách khắc phục lỗi Apple CarPlay không hoạt động
Hôm qua -

13 câu lệnh SQL quan trọng Programmer nào cũng cần biết
Hôm qua -

Cách sắp xếp ảnh chồng lên nhau trong Word
Hôm qua -

3 cách tắt tường lửa Windows 11
Hôm qua -

6 cách mở Computer/System Properties trong Windows 10
Hôm qua -

Hướng dẫn kết nối máy tính với máy chiếu, kết nối laptop với máy chiếu
Hôm qua 2 -

6 cách siêu dễ thêm phụ đề, caption vào video
Hôm qua -

Làm sao để tải phụ đề video trên Youtube nhanh chóng và đơn giản?
Hôm qua -

Mất quyền Admin trên Windows 10, đây là cách khắc phục
Hôm qua
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy