جملة 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.
التحدي
سهلاقرأ سلسلة نصية 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
// تحديد الإجراء المناسب بناءً على لون إشارة المرور
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص