في لغة PHP، switch هي هيكل تحكم يُستخدم لتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على قيمة متغيرة أو تعبير. تُعتبر switch بديلًا أنظف وأكثر تنظيمًا لسلسلة طويلة من عبارات if-elseif-else.

كيف تعمل switch؟

  1. يتم تقييم التعبير (expression) الموجود داخل أقواس switch.
  2. يتم مقارنة قيمة هذا التعبير بقيم case المختلفة.
  3. إذا تطابقت قيمة التعبير مع قيمة case، يتم تنفيذ كتلة التعليمات البرمجية المرتبطة بهذا case.
  4. يستمر التنفيذ حتى الوصول إلى الكلمة المفتاحية break، والتي تُنهي تنفيذ هيكل switch.
  5. إذا لم تتطابق قيمة التعبير مع أي من قيم 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 لتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على قيمة متغيرة. استخدامها بشكل صحيح يُحسّن من وضوح وقراءة الكود.