🚀 احتراف جملة switch في PHP: البديل الذكي للشروط المتعددة

في الدروس السابقة، تعلمنا كيف نستخدم if و elseif لاتخاذ القرارات في الكود. ولكن، ماذا لو كان لدينا متغير واحد نريد مقارنته بقيم كثيرة جداً؟

هنا يأتي دور جملة switch. بدلاً من كتابة سلسلة طويلة ومملة من elseif التي تجعل الكود يبدو مزدحماً وصعب القراءة، توفر لنا PHP أداة أنيقة ومنظمة تسمى switch.


❓ ما هي جملة switch بالضبط؟

تخيل أن switch هي مثل "موزع" أو "مفتاح تحويل". هي تأخذ قيمة معينة (متغير)، ثم تقوم بالبحث في قائمة من "الحالات" (Cases) المتاحة. بمجرد أن تجد حالة تطابق القيمة التي معها، تقوم بتنفيذ الكود الموجود داخل هذه الحالة فقط.

متى نستخدمها؟ نستخدمها عندما يكون لدينا متغير واحد نريد التحقق من قيمته مقابل عدة خيارات محددة.


🛠️ الهيكل الأساسي لـ switch (Syntax)

قبل أن ننتقل للأمثلة، دعنا نلقِ نظرة على الطريقة التي تُكتب بها switch في PHP:

switch ($variable) {
    case "value1":
        // الكود الذي سيعمل إذا كانت القيمة تساوي value1
        break;
    case "value2":
        // الكود الذي سيعمل إذا كانت القيمة تساوي value2
        break;
    default:
        // الكود الذي سيعمل إذا لم تطابق القيمة أي من الحالات السابقة
}

شرح المكونات:

  1. switch ($variable): هنا نضع المتغير الذي نريد فحصه.
  2. case: تعني "في حالة أن تكون القيمة كذا".
  3. break: (مهمة جداً!) تخبر PHP بأن تتوقف عن البحث وتخرج من الـ switch بعد تنفيذ الكود. إذا نسيناها، سيقوم PHP بتنفيذ الحالات التالية حتى لو كانت غير مطابقة!
  4. default: هي "الخطة البديلة". تعمل فقط إذا لم تتحقق أي حالة من الحالات السابقة (تشبه else الأخيرة).

💻 مثال عملي وبسيط: تحديد اليوم

لنفرض أن لدينا متغيراً يحمل رقم اليوم من 1 إلى 3، ونريد طباعة اسم اليوم بناءً على هذا الرقم.

<?php
$dayNumber = 2; // القيمة التي نريد فحصها

switch ($dayNumber) {
    case 1:
        echo "Today is Sunday"; // سيتم تنفيذ هذا إذا كان الرقم 1
        break;
    case 2:
        echo "Today is Monday"; // سيتم تنفيذ هذا لأن الرقم هو 2
        break;
    case 3:
        echo "Today is Tuesday"; // سيتم تنفيذ هذا إذا كان الرقم 3
        break;
    default:
        echo "Invalid day number!"; // سيتم تنفيذ هذا إذا كان الرقم أي شيء آخر
}
?>

ماذا حدث في هذا الكود؟

  • الـ switch نظرت إلى قيمة $dayNumber ووجدتها تساوي 2.
  • بحثت في الحالات: هل هي 1؟ لا. هل هي 2؟ نعم!.
  • قامت بطباعة "Today is Monday".
  • وصلت إلى كلمة break فخرجت من العملية فوراً.

💡 ملاحظات هامة للمبتدئين

  1. أهمية break: تذكر دائماً وضع break في نهاية كل حالة. بدونها، سيستمر البرنامج في تنفيذ الحالة التالية (Case) حتى لو لم تكن مطابقة، وهذا ما يسمى "Fall-through".
  2. الترتيب: الـ default توضع عادة في النهاية، ولكنها تعمل كصمام أمان في حال لم تتحقق أي شروط.
  3. التبسيط: استخدم switch عندما يكون لديك أكثر من 3 خيارات لنفس المتغير، لأنها تجعل الكود أنظف بكثير من if...elseif.

📝 ملخص سريع

  • switch تُستخدم لمقارنة متغير واحد بعدة قيم محتملة.
  • كل خيار يسمى case.
  • نستخدم break لإيقاف التنفيذ بعد إيجاد الحالة الصحيحة.
  • نستخدم default للتعامل مع أي قيمة غير متوقعة.