Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

جملة Switch

جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 32 من 71.

عندما تحتاج إلى مقارنة متغير واحد بالعديد من القيم المحددة، توفر جملة switch بديلاً أكثر تنظيماً لسلاسل if-elseif الطويلة.

تتحقق جملة switch من متغير مرة واحدة ثم تطابقه مع قيم case مختلفة:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

يقارن PHP قيمة $day مع كل حالة. وعندما يجد تطابقاً، فإنه ينفذ كود تلك الكتلة.

تُعد جملة break أمراً بالغ الأهمية—فهي تخبر PHP بالخروج من switch بعد تنفيذ الحالة المطابقة. وبدونها، سيستمر PHP في تشغيل جميع الأكواد البرمجية أدناه، حتى من الحالات الأخرى.

لاحظ كيف يشترك يوما السبت والأحد في نفس الكود من خلال تكديس الحالات معًا. تعمل الحالة default مثل else—فهي تُنفذ عندما لا تتطابق أي حالة أخرى.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

استخدم switch عند مقارنة متغير واحد بعدة قيم محددة. بالنسبة للشروط المعقدة أو النطاقات، التزم ببيانات if-elseif.

challenge icon

التحدي

سهل

اقرأ سلسلة نصية command من المدخلات تمثل لون إشارة المرور.

استخدم عبارة switch لتحديد الإجراء المناسب بناءً على اللون:

  • إذا كان الأمر red، اطبع Stop
  • إذا كان الأمر yellow، اطبع Slow down
  • إذا كان الأمر green، اطبع Go
  • إذا كان الأمر flashing red أو flashing yellow، اطبع Proceed with caution
  • لأي قيمة أخرى، اطبع Invalid signal

مثال:

إذا كانت المدخلات green، يجب أن تكون المخرجات:

Go

إذا كانت المدخلات flashing red، يجب أن تكون المخرجات:

Proceed with caution

إذا كانت المدخلات blue، يجب أن تكون المخرجات:

Invalid signal

ورقة مرجعية

توفر جملة switch طريقة أكثر تنظيماً لمقارنة متغير واحد بعدة قيم محددة:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    default:
        echo "Regular day";
}
?>

تقوم جملة break بالخروج من switch بعد تنفيذ الحالة المطابقة. وبدونها، يستمر PHP في تشغيل الكود من الحالات التالية.

يمكن لعدة حالات مشاركة نفس الكود عن طريق تكديسها:

<?php
switch ($day) {
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
}
?>

يتم تشغيل الحالة default عندما لا تتطابق أي حالة أخرى، وهي تشبه جملة else.

استخدم جمل switch لمقارنة متغير واحد بعدة قيم محددة. بالنسبة للشروط المعقدة أو النطاقات، استخدم جمل if-elseif بدلاً من ذلك.

جرّب بنفسك

<?php
// قراءة المدخلات
$command = trim(fgets(STDIN));

// TODO: اكتب كودك أدناه باستخدام جملة switch
// تحديد الإجراء المناسب بناءً على لون إشارة المرور


?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals