في لغة PHP، switch
هي هيكل تحكم يُستخدم لتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على قيمة متغيرة أو تعبير. تُعتبر switch
بديلًا أنظف وأكثر تنظيمًا لسلسلة طويلة من عبارات if-elseif-else
.
كيف تعمل switch
؟
- يتم تقييم التعبير (expression) الموجود داخل أقواس
switch
. - يتم مقارنة قيمة هذا التعبير بقيم
case
المختلفة. - إذا تطابقت قيمة التعبير مع قيمة
case
، يتم تنفيذ كتلة التعليمات البرمجية المرتبطة بهذاcase
. - يستمر التنفيذ حتى الوصول إلى الكلمة المفتاحية
break
، والتي تُنهي تنفيذ هيكلswitch
. - إذا لم تتطابق قيمة التعبير مع أي من قيم
case
، يتم تنفيذ كتلة التعليمات البرمجية الموجودة داخلdefault
(إذا كانت موجودة).
بناء جملة switch
:
PHP
switch (expression) { case value1: // كود للتنفيذ إذا كان expression == value1 break; case value2: // كود للتنفيذ إذا كان expression == value2 break; case value3: // كود للتنفيذ إذا كان expression == value3 break; ... default: // كود للتنفيذ إذا لم يتطابق expression مع أي من قيم case}
مثال:
PHP
<?php$favcolor = "red";
switch ($favcolor) { case "red": echo "لونك المفضل أحمر!"; break; case "blue": echo "لونك المفضل أزرق!"; break; case "green": echo "لونك المفضل أخضر!"; break; default: echo "لونك المفضل ليس أحمر ولا أزرق ولا أخضر!";}?>
في هذا المثال:
- يتم تحديد قيمة المتغير
$favcolor
على أنها "red". - يتم تقييم التعبير داخل
switch
وهو$favcolor
. - تتم مقارنة قيمة
$favcolor
بقيمcase
. - تتطابق قيمة
$favcolor
معcase "red"
. - يتم تنفيذ الكود داخل
case "red"
، وهوecho "لونك المفضل أحمر!";
. - تُنهي
break
تنفيذswitch
.
ملاحظات مهمة:
break
ضرورية: إذا لم تُستخدمbreak
، فسيستمر التنفيذ إلىcase
التالي حتى الوصول إلى نهايةswitch
أوbreak
أخرى. يُعرف هذا باسم "fall-through" وقد يكون مفيدًا في بعض الحالات، ولكنه غالبًا ما يكون مصدرًا للأخطاء إذا لم يُستخدم بعناية.- المقارنة: تُستخدم المقارنة الضعيفة (
==
) فيswitch
. هذا يعني أنه يتم إجراء تحويل للأنواع إذا لزم الأمر. default
اختيارية: كتلةdefault
اختيارية. يتم تنفيذها إذا لم تتطابق قيمة التعبير مع أي من قيمcase
.- أنواع البيانات: يمكن استخدام أنواع بيانات مختلفة في
switch
، مثل الأعداد الصحيحة والسلاسل النصية والأحرف.
متى تستخدم switch
؟
تُستخدم switch
عندما يكون لديك متغير أو تعبير تريد مقارنته بقيم متعددة. تُعتبر أكثر وضوحًا وقراءةً من سلسلة طويلة من if-elseif-else
، خاصةً عندما يكون لديك عدد كبير من الشروط.
باختصار، switch
هي أداة قوية في PHP لتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على قيمة متغيرة. استخدامها بشكل صحيح يُحسّن من وضوح وقراءة الكود.