English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليم PHP الأساسي

دروس PHP متقدمة

PHP & MySQL

دليل PHP

جملة PHP Switch…Case

في هذا الدرس، ستتعلم كيفية استخدام جملة switch-case لاختبار أو تقييم تعبيرات ذات قيم مختلفة في PHP.

PHP If…Else Vs Switch…Case

تعتبر جملة switch-case بديلاً عن جملة if-elseif-else، حيث تنفذ نفس العمليات تقريبًا. تقوم جملة switch-case بفحص قيمة المتغير لسلسلة من القيم حتى تجد تطابقًا، ثم تنفذ الكود المرتبط بالقيمة الم匹配ة.

switch(n){
    case label1:
        // الكود الذي سيتم تنفيذه عند تطابق n مع label1
        break;
    case label2:
        // الكود الذي سيتم تنفيذه عند تطابق n مع label2
        break;
    ...
    default:
        // الكود الذي سيتم تنفيذه عند عدم تطابق n مع جميع العلامات
}

انظر إلى المثال التالي، حيث يعرض المثال رسالة مختلفة كل يوم.

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "اليوم يوم الاثنين. نظف منزلك.";
        break;
    case "Tue":
        echo "اليوم يوم الثلاثاء. اشترِ بعض الطعام.";
        break;
    case "Wed":
        echo "اليوم يوم الأربعاء. اذهب إلى الطبيب.";
        break;
    case "Thu":
        echo "اليوم يوم الخميس. قم بتصليح سيارتك.";
        break;
    case "Fri":
        echo "اليوم يوم الجمعة. الليلة افتح حفلة.";
        break;
    case "Sat":
        echo "اليوم يوم السبت. وقت لرؤية فيلم.";
        break;
    case "Sun":
        echo "اليوم يوم الأحد. استريح قليلاً.";
        break;
    default:
        echo "لا توجد معلومات متاحة اليوم.";
        break;
}
?>
الاختبار لمعرفة‹/›

الفرق بين جملة switch-case وجملة if-elseif-else يكمن في جانب مهم. تنفذ جملة switch خطوة بخطوة (أي جملة واحدة تلو الأخرى)، ويجب على PHP العثور على حالة جملة case تكون قيمة التعبير الخاص بها صحيحة، حيث لا ينفذ فقط الكود المرتبط بالحالة، بل أيضًا جميع الحالات التالية حتى نهاية الجملة. سيتم التبديل تلقائيًا إلى مكتبة switch.

لمنع هذا النوع من الحالات، يرجى إضافة جملة break في نهاية كل مكتبة case. جملة break تخبر PHP بأنه إذا تم تنفيذ الكود المرتبط بcase الحقيقي الأول، يجب الخروج من جملة switch-case.