match که از php ورژن 8.0 به بعد در دسترس قرار داره همونطور که از اسمش پیدا هست برای match کردن یا تطبیق دادن دو مقدار با هم استفاده میشه، میشه گفت همون switch case هست.اما نسبت به
switch case تفاوت هایی داره،به عنوان مثال برخلاف
switch case که از == برای مقایسه استفاده می کنه، عبارت match از === استفاده می کنه.از لحاظ پرفورمنس چند تا تست گرفتم و تفاوت آنچنانی ندارن ولی خب
match بسیار کوتاه تر و خوانا تر هست و با دقت بیشتر.در پایان ساختارش به صورت زیر هست:
$number = rand(0, 5);کد بالا با
echo match ($number) {
1 => 'number 1',
2 => 'number 2',
3 => 'number 3',
4 => 'number 4',
default => 'another number',
};
switch case به صورت زیر هست:$number = rand(0, 5);همونطور که می بینید بسیار کوتا تر و خوانا تر هست.
switch ($number){
case 1:
echo 'number 1';
break;
case 2:
echo 'number 2';
break;
case 3:
echo 'number 3';
break;
case 4:
echo 'number 4';
break;
default:
echo 'another number';
break;
}