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 الكامل بالعربي.