الشروط المتعددة else if في PHP — شرح الكود والنتيجة

في الدرس السابق استخدمنا if / else عندما كان عندنا خياران فقط. لكن ماذا لو كان عندنا 3 أو 4 أو 5 حالات مختلفة؟ هنا نستخدم else if.

ما هي else if في PHP؟

جملة else if تضيف شروطاً إضافية بين if وelse. PHP تفحص الشروط من الأعلى إلى الأسفل، وتنفيذ أول شرط صحيح فقط.

الهيكل العام لجملة else if

الكود:

if (condition1) {
    // الحالة الأولى
} elseif (condition2) {
    // الحالة الثانية
} elseif (condition3) {
    // الحالة الثالثة
} else {
    // الحالة الافتراضية
}

شرح الكود: عند تحقق شرط، تتوقف السلسلة ولا يتم فحص الشروط التي بعده.

مثال 1: نظام التقديرات

الكود:

<?php
$score = 85;

if ($score >= 90) {
    echo "ممتاز";
} elseif ($score >= 80) {
    echo "جيد جداً";
} elseif ($score >= 70) {
    echo "جيد";
} else {
    echo "يحتاج لمراجعة";
}
?>

ما يظهر في المتصفح:

جيد جداً

شرح الكود: فشل الشرط الأول (85 >= 90)، ثم تحقق الشرط الثاني (85 >= 80) فتم طباعة "جيد جداً" وتوقفت السلسلة.

مثال 2: تصنيف الوقت خلال اليوم

الكود:

<?php
$hour = 14;

if ($hour < 12) {
    echo "صباح الخير";
} elseif ($hour < 18) {
    echo "مساء الخير";
} else {
    echo "تصبح على خير";
}
?>

ما يظهر في المتصفح:

مساء الخير

شرح الكود: الساعة 14 ليست أقل من 12، لكنها أقل من 18، لذلك نُفذ مسار elseif الثاني.

مثال 3: أهمية ترتيب الشروط

الكود (ترتيب صحيح):

<?php
$score = 95;

if ($score >= 90) {
    echo "ممتاز";
} elseif ($score >= 80) {
    echo "جيد جداً";
}
?>

ما يظهر في المتصفح:

ممتاز

شرح الكود: وضعنا الشرط الأعلى أولاً. لو عكسنا الترتيب (80 قبل 90)، سيطبع البرنامج "جيد جداً" حتى عندما تكون الدرجة 95.

أخطاء شائعة عند استخدام else if

  • ترتيب الشروط بشكل خاطئ.
  • نسيان else في الحالات التي تحتاج قيمة افتراضية.
  • كتابة شروط متداخلة بدون أقواس أو بدون وضوح.
  • توقع تنفيذ أكثر من فرع في نفس السلسلة (وهذا لا يحدث).

نصيحة عملية

نصيحة: رتب الشروط من الأكثر تحديداً إلى الأقل، واكتب أسماء متغيرات واضحة حتى يكون منطق القرار سهل القراءة.

تمرين سريع

  1. أنشئ متغير $temp لدرجة الحرارة.
  2. إذا كانت أقل من 10 اطبع "بارد".
  3. إذا كانت أقل من 25 اطبع "معتدل".
  4. وإلا اطبع "حار".

الأسئلة الشائعة — FAQ

متى أستخدم else if؟

عند وجود أكثر من حالة ممكنة وتريد اختيار حالة واحدة فقط حسب أول شرط صحيح.

هل يتم تنفيذ كل فروع else if؟

لا. يتم تنفيذ أول فرع صحيح فقط.

ما الفرق بين else if و if منفصلة؟

سلسلة else if تختار مساراً واحداً، بينما if المنفصلة قد تنفذ أكثر من مسار.

هل ترتيب الشروط مهم؟

نعم، مهم جداً لأن الترتيب يحدد أي فرع سيتنفذ أولاً.

بعد هذا الدرس، انتقل إلى: جملة switch في PHP.

ممتاز! الآن أصبحت قادراً على بناء منطق متعدد الحالات باستخدام else if بشكل واضح ومنظم.
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن