Cấu trúc match
Cấu trúc match xuất hiện trong PHP 8.0 và cung cấp một cách phân nhánh ngắn gọn và an toàn hơn so với switch. Nó nhận một biểu thức để so sánh và trả về giá trị của điều kiện khớp đầu tiên. Không giống như switch, match thực hiện so sánh chặt chẽ (===) và không yêu cầu break.
Cú pháp
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Ví dụ
So khớp số đơn giản:
<?php
$res = match (2) {
1 => 'Một',
2 => 'Hai',
3 => 'Ba',
default => 'Không xác định'
};
echo $res;
?>
Kết quả thực thi mã:
'Hai'
Ví dụ
So khớp với nhiều điều kiện:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Trẻ em',
$age >= 18 && $age < 65 => 'Người lớn',
$age >= 65 => 'Người cao tuổi'
};
echo $res;
?>
Kết quả thực thi mã:
'Người lớn'
Ví dụ
Sử dụng với mảng:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Chuỗi thứ nhất',
[4, 5, 6] => 'Chuỗi thứ hai',
default => 'Chuỗi khác'
};
echo $res;
?>
Kết quả thực thi mã:
'Chuỗi thứ nhất'