تخطَّ إلى المحتوى

match

تعبير match match

تعبير مقارنة صارمة (===) يُرجع قيمة مباشرة، بديل أحدث وأدق من switch.

match (منذ PHP 8.0) يقارن القيمة بكل حالة باستخدام === (مقارنة صارمة بلا تحويل ضمني للأنواع)، ويُرجع نتيجة الحالة المطابقة كقيمة مباشرة دون الحاجة لـ break.

إن لم تُطابق أي حالة ولا يوجد default، يرمي match خطأ UnhandledMatchError — على عكس switch الذي يمرّ بصمت.

الصياغة

$result = match ($value) {
    case1, case2 => expr1,
    default => exprDefault,
};

📄 مثال

$status = "shipped";
echo match ($status) {
    "pending" => "قيد الانتظار",
    "shipped", "delivered" => "في الطريق أو وصل",
    default => "غير معروف",
};

أهم النقاط

العنصرالوظيفة
===المقارنة المستخدمة داخليًا — صارمة بلا تحويل أنواع
defaultالحالة الاحتياطية؛ بدونها وبدون تطابق يُرمى UnhandledMatchError

💡 نصائح عملية

  • استخدم match بدل switch عندما تريد قيمة مُعادة مباشرة ومقارنة صارمة

⚠️ أخطاء شائعة

  • توقّع أن match يتساهل في الأنواع كـ switch (== ضمنية) — هو صارم دائمًا

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.