الفرق بين المراجعتين ل"PHP/control structures alternative syntax"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
ط (استبدال النص - 'PHP/Control Structures/else' ب'PHP/else')
سطر 12: سطر 12:
 
في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A is equal to 5" في عبارة if مكتوبة بالصيغة البديلة، ولا تعرض كتلة HTML هذه إلا إذا كانت قيمة المتغير ‎<code>$a</code> مساوية للقيمة 5.
 
في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A is equal to 5" في عبارة if مكتوبة بالصيغة البديلة، ولا تعرض كتلة HTML هذه إلا إذا كانت قيمة المتغير ‎<code>$a</code> مساوية للقيمة 5.
  
تنطبق الصيغة البديلة على <code>[[PHP/Control Structures/else|else]]</code> و <code>[[PHP/Control Structures/elseif|elseif]]</code> أيضًا. فيما يلي بنية <code>[[PHP/Control Structures/if|if]]</code> إضافةً إلى <code>[[PHP/Control Structures/elseif|elseif]]</code> و <code>[[PHP/Control Structures/else|else]]</code> وباستخدام الصيغة البديلة:
+
تنطبق الصيغة البديلة على <code>[[PHP/else|else]]</code> و <code>[[PHP/elseif|elseif]]</code> أيضًا. فيما يلي بنية <code>[[PHP/Control Structures/if|if]]</code> إضافةً إلى <code>[[PHP/elseif|elseif]]</code> و <code>[[PHP/else|else]]</code> وباستخدام الصيغة البديلة:
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
  

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

(PHP 4, PHP 5, PHP 7)

تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي if و while و for و foreach و switch. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (:) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة endif;‎ أو endwhile;‎ أو endfor;‎ أوendforeach; ‎ أو endswitch;‎ في النهاية حسب الحاجة.

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A is equal to 5" في عبارة if مكتوبة بالصيغة البديلة، ولا تعرض كتلة HTML هذه إلا إذا كانت قيمة المتغير ‎$a مساوية للقيمة 5.

تنطبق الصيغة البديلة على else و elseif أيضًا. فيما يلي بنية if إضافةً إلى elseif و else وباستخدام الصيغة البديلة:

<?php
if ($a == 5):
    echo "a equals 5";
    echo "...";
elseif ($a == 6):
    echo "a equals 6";
    echo "!!!";
else:
    echo "a is neither 5 nor 6";
endif;
?>

ملاحظة: لا تدعم اللغة المزج بين الصيغتين في بنية واحدة.

تحذير: يؤدي وجود أي مخرجات (حتى الفواصل البيضاء) بين عبارة switch وبين عبارة case الأولى إلى حدوث خطأ في الصيغة (syntax error). فعلى سبيل المثال الشيفرة التالية غير صالحة:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch ?>

في حين أن الشيفرة التالية تعدّ صالحةً، إذ تعدّ المسافة البيضاء التي كانت بعد عبارة switch جزءًا من علامة الإغلاق <?، وبعد حذفها لن يكون هناك أي مخرجات بين عبارتي switch و case:

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch ?>

راجع أيضًا while و for و if للمزيد من الأمثلة.

مصادر