في لغة 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 لتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على قيمة متغيرة. استخدامها بشكل صحيح يُحسّن من وضوح وقراءة الكود.
