الفرق بين المراجعتين لصفحة: «PHP/elseif»
ط استبدال النص - 'PHP/Control Structures/alternative-syntax' ب'PHP/control structures alternative syntax' |
ط نقل عبد اللطيف ايمش صفحة PHP/Control Structures/elseif إلى PHP/elseif: إعادة هيكلة التوثيق |
||
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 2: | سطر 2: | ||
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من <code>[[PHP | كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من <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 | لا تنفّذ عبارة <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:49، 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;
?>