Match expression เป็นคุณสมบัติใหม่ที่เพิ่มใน PHP 8 มันคล้ายกับคำสั่ง switch-case มาก แต่ให้ความปลอดภัยทางความหมายมากขึ้น
Match expression ไม่ใช้โครงสร้าง 'case และ break' ของ switch-case รองรับเงื่อนไขร่วม (joint conditions) และคืนค่าแทนที่จะเข้าบล็อกโค้ดใหม่
เราสามารถเก็บผลลัพธ์ match ในตัวแปรได้ เพราะมันเป็นนิพจน์ (expression)
Match expression ไม่ต้องการคำสั่ง break เหมือน switch รองรับเฉพาะนิพจน์บรรทัดเดียว
ตัวอย่าง: PHP 7 ใช้คำสั่ง Switch Statement
<?php
switch (1.0) {
case '1.0':
$result = "Hello World!";
break;
case 1.0:
$result = "Looks good";
break;
}
echo $result;
?>
ผลลัพธ์
Hello World!
ตัวอย่าง: โค้ด PHP 7 ด้านบน ใช้ PHP 8 Match Expression
<?php
echo match (1.0) {
'1.0' => "Hello World!",
1.0 => "Looks Good!",
};
?>
ผลลัพธ์
Looks Good!
ตัวอย่าง: ใช้ PHP 8 Match Expression
<?php
echo match (2) {
1 => 'Company',
2 => 'Department',
3 => 'Employee',
};
?>
ผลลัพธ์
Employee