Match expression là tính năng mới trong PHP 8. Rất giống switch-case nhưng cung cấp ngữ nghĩa an toàn hơn.
Match expression không dùng cấu trúc 'case và break' như switch-case. Hỗ trợ điều kiện kết hợp, trả về giá trị thay vì vào khối mã mới.
Có thể lưu kết quả match vào biến vì nó là biểu thức.
Match expression không cần break như switch. Chỉ hỗ trợ biểu thức một dòng.
Ví dụ: PHP 7 dùng Switch Statement
<?php
switch (1.0) {
case '1.0':
$result = "Hello World!";
break;
case 1.0:
$result = "Looks good";
break;
}
echo $result;
?>
Kết quả
Hello World!
Ví dụ: Code PHP 7 trên viết bằng PHP 8 Match Expression
<?php
echo match (1.0) {
'1.0' => "Hello World!",
1.0 => "Looks Good!",
};
?>
Kết quả
Looks Good!
Ví dụ: Sử dụng PHP 8 Match Expression
<?php
echo match (2) {
1 => 'Company',
2 => 'Department',
3 => 'Employee',
};
?>
Kết quả
Department