الفرق بين المراجعتين لصفحة: «PHP/elseif»

من موسوعة حسوب
< PHP
ط استبدال النص - 'PHP/Control Structures/else' ب'PHP/else'
ط استبدال النص - 'PHP/Control Structures/if' ب'PHP/if'
سطر 2: سطر 2:
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من <code>[[PHP/Control Structures/if|if]]</code> و <code>[[PHP/else|else]]</code>، وكما هو الحال مع <code>[[PHP/else|else]]</code> يمكن توسيع عبارة <code>[[PHP/Control Structures/if|if]]</code> لتنفيذ عبارة أخرى في حال كانت نتيجة تعبير <code>[[PHP/Control Structures/if|if]]</code> هي <code>FALSE</code>. ولكن، على العكس من <code>[[PHP/else|else]]</code>، فإن <code>elseif</code> تنفذ ذلك التعبير البديل في حالة واحدة فقط وهي أن تكون نتيجة التعبير الشرطي المتعلق بعبارة <code>elseif</code> هي <code>TRUE</code>. فعلى سبيل المثال تعرض الشيفرة التالية عبارة 'a is bigger than b'، أو 'a equal to b' أو 'a is smaller than b':
كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من <code>[[PHP/if|if]]</code> و <code>[[PHP/else|else]]</code>، وكما هو الحال مع <code>[[PHP/else|else]]</code> يمكن توسيع عبارة <code>[[PHP/if|if]]</code> لتنفيذ عبارة أخرى في حال كانت نتيجة تعبير <code>[[PHP/if|if]]</code> هي <code>FALSE</code>. ولكن، على العكس من <code>[[PHP/else|else]]</code>، فإن <code>elseif</code> تنفذ ذلك التعبير البديل في حالة واحدة فقط وهي أن تكون نتيجة التعبير الشرطي المتعلق بعبارة <code>elseif</code> هي <code>TRUE</code>. فعلى سبيل المثال تعرض الشيفرة التالية عبارة 'a is bigger than b'، أو 'a equal to b' أو 'a is smaller than b':
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


سطر 17: سطر 17:
يمكن استخدام عبارة <code>elseif</code> مع الشرط ذاته لأكثر من مرة، وسينفّذ أول تعبير <code>elseif</code> تكون نتيجته هي <code>TRUE</code> (في حال وجوده). في PHP يمكن أيضًا كتابة '<code>else if</code>' (أي فصل الكلمتين) وهذه العبارة مطابقة تمامًا لعبارة '<code>elseif</code>' (دون فاصلٍ بينهما). يختلف المعنى النحوي لهاتين العبارتين عن بعضهما البعض (إن كانت لديك خبرة في لغة C فالحال مشابه هنا) ولكن المهمّ هو أنّ كلا التعبيرين يؤدّيان العمل ذاته.
يمكن استخدام عبارة <code>elseif</code> مع الشرط ذاته لأكثر من مرة، وسينفّذ أول تعبير <code>elseif</code> تكون نتيجته هي <code>TRUE</code> (في حال وجوده). في PHP يمكن أيضًا كتابة '<code>else if</code>' (أي فصل الكلمتين) وهذه العبارة مطابقة تمامًا لعبارة '<code>elseif</code>' (دون فاصلٍ بينهما). يختلف المعنى النحوي لهاتين العبارتين عن بعضهما البعض (إن كانت لديك خبرة في لغة C فالحال مشابه هنا) ولكن المهمّ هو أنّ كلا التعبيرين يؤدّيان العمل ذاته.


لا تنفّذ عبارة <code>elseif</code> إلا إذا كانت نتيجة عبارة <code>[[PHP/Control Structures/if|if]]</code> السابقة وأي عبارة <code>elseif</code> سابقة هي <code>FALSE</code> ونتيجة عبارة <code>elseif</code> الحالية هي <code>TRUE</code>.
لا تنفّذ عبارة <code>elseif</code> إلا إذا كانت نتيجة عبارة <code>[[PHP/if|if]]</code> السابقة وأي عبارة <code>elseif</code> سابقة هي <code>FALSE</code> ونتيجة عبارة <code>elseif</code> الحالية هي <code>TRUE</code>.


ملاحظة: يجب الانتباه إلى أن عبارتي <code>elseif</code> و <code>else if</code> تكونان متطابقتين فقط عند استخدام الأقواس المعقوفة كما في المثال السابق. عند استخدام النقطتين (<code>:</code> أي [[PHP/control structures alternative syntax|الشكل البديل]]) لتعريف شروط if/elseif يجب حينئذٍ عدم فصل الكلمتين وإلا ستواجه خطأً إعرابيًا parse error.
ملاحظة: يجب الانتباه إلى أن عبارتي <code>elseif</code> و <code>else if</code> تكونان متطابقتين فقط عند استخدام الأقواس المعقوفة كما في المثال السابق. عند استخدام النقطتين (<code>:</code> أي [[PHP/control structures alternative syntax|الشكل البديل]]) لتعريف شروط if/elseif يجب حينئذٍ عدم فصل الكلمتين وإلا ستواجه خطأً إعرابيًا parse error.

مراجعة 03:30، 4 أبريل 2018

(PHP 4, PHP 5, PHP 7)

كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من if و else، وكما هو الحال مع else يمكن توسيع عبارة if لتنفيذ عبارة أخرى في حال كانت نتيجة تعبير if هي FALSE. ولكن، على العكس من else، فإن elseif تنفذ ذلك التعبير البديل في حالة واحدة فقط وهي أن تكون نتيجة التعبير الشرطي المتعلق بعبارة elseif هي TRUE. فعلى سبيل المثال تعرض الشيفرة التالية عبارة 'a is bigger than b'، أو 'a equal to b' أو 'a is smaller than b':

<?php
if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}
?>

يمكن استخدام عبارة elseif مع الشرط ذاته لأكثر من مرة، وسينفّذ أول تعبير elseif تكون نتيجته هي TRUE (في حال وجوده). في PHP يمكن أيضًا كتابة 'else if' (أي فصل الكلمتين) وهذه العبارة مطابقة تمامًا لعبارة 'elseif' (دون فاصلٍ بينهما). يختلف المعنى النحوي لهاتين العبارتين عن بعضهما البعض (إن كانت لديك خبرة في لغة C فالحال مشابه هنا) ولكن المهمّ هو أنّ كلا التعبيرين يؤدّيان العمل ذاته.

لا تنفّذ عبارة elseif إلا إذا كانت نتيجة عبارة if السابقة وأي عبارة elseif سابقة هي FALSE ونتيجة عبارة elseif الحالية هي TRUE.

ملاحظة: يجب الانتباه إلى أن عبارتي elseif و else if تكونان متطابقتين فقط عند استخدام الأقواس المعقوفة كما في المثال السابق. عند استخدام النقطتين (: أي الشكل البديل) لتعريف شروط if/elseif يجب حينئذٍ عدم فصل الكلمتين وإلا ستواجه خطأً إعرابيًا parse error.

<?php

/* الطريقة الخطأ */
if ($a > $b):
    echo $a." is greater than ".$b;
else if ($a == $b): 
// لن تنفذ الشيفرة
    echo "The above line causes a parse error.";
endif;


/* الطريقة الصحيحة */
if ($a > $b):
    echo $a." is greater than ".$b;
elseif ($a == $b):
 // لاحظ أن الكلمتين ممزوجتان
    echo $a." equals ".$b;
else:
    echo $a." is neither greater than or equal to ".$b;
endif;

?>

مصادر