صيغة بديلة لبنى التحكم في PHP

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

(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 : تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة.

مصادر