شرح صفوف ومحتوى الفقرة
في تطوير PHP 8.3 / 8.4 الحديث، يُعد match الخيار الافتراضي لتحويل القيم وربطها، بينما تبقى switch مفيدة فقط لكتل الأوامر الإجرائية متعددة الأسطر.
- فضّل
matchدائماً عند تحويل قيمة مدخلة أو شرطmatch (true)إلى قيمة مخرجة. - تذكر دائماً الفاصلة المنقوطة
};في نهاية تعبيرmatch. - لا تضع أبداً الأمر
break;داخل مساراتmatch.
يُقيّم match (true) كل مسار منطقي بالترتيب الصارم ويُرجع "Gold Mastery" للدرجة 92.
| وجه المقارنة | تعبير match الحديث (PHP 8+) | جملة switch التقليدية |
|---|---|---|
| معامل المقارنة | تطابق صارم في القيمة والنوع (===) | مساواة مرنة (==) |
| إرجاع قيمة مباشرة | نعم (تعبير يُسند لمتغير) | لا (كتلة أوامر إجرائية) |
| السقوط التلقائي | لا يسقط أبداً (لا يحتاج break) | يسقط للحالة التالية ما لم تكتب break; |
| تجميع عدة قيم | مفصولة بفاصلة: 1, 2 => ... | عناوين مكدسة: case 1: case 2: |
غياب التطابق وdefault | يرمي خطأ UnhandledMatchError | يتجاهل التنفيذ بصمت |
PHP
<?php
$score = 92;
$badge = match (true) {
$score >= 90 => "Gold Mastery",
$score >= 75 => "Silver Proficiency",
$score >= 60 => "Bronze Pass",
default => "Needs Practice",
};
echo "Score $score -> $badge\n";
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
في تطوير PHP 8.3 / 8.4 الحديث، يُعد match الخيار الافتراضي لتحويل القيم وربطها، بينما تبقى switch مفيدة فقط لكتل الأوامر الإجرائية متعددة الأسطر. فضّل match دائماً عند تحويل قيمة مدخلة أو شرط match (true) إلى قيمة مخرجة. تذكر دائماً الفاصلة المنقوطة }; في نهاية تعبير match. لا تضع أبداً الأمر break; داخل مسارات match.