صيغة بديلة لبنى التحكم في PHP
(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
للمزيد من الأمثلة.