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

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


تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي <code>[[PHP/if|if]]</code> و <code>[[PHP/Control Structures/while|while]]</code> و <code>[[PHP/for|for]]</code> و <code>[[PHP/foreach|foreach]]</code> و <code>[[PHP/Control Structures/switch|switch]]</code>. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (<code>:</code>) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة <code>endif;</code>‎ أو <code>endwhile;</code>‎ أو <code>endfor;</code>‎ أو<code>endforeach;</code> ‎ أو <code>endswitch;</code>‎ في النهاية حسب الحاجة.
تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي <code>[[PHP/if|if]]</code> و <code>[[PHP/Control Structures/while|while]]</code> و <code>[[PHP/for|for]]</code> و <code>[[PHP/foreach|foreach]]</code> و <code>[[PHP/switch|switch]]</code>. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (<code>:</code>) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة <code>endif;</code>‎ أو <code>endwhile;</code>‎ أو <code>endfor;</code>‎ أو<code>endforeach;</code> ‎ أو <code>endswitch;</code>‎ في النهاية حسب الحاجة.
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


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


تحذير: يؤدي وجود أي مخرجات (حتى الفواصل البيضاء) بين عبارة <code>[[PHP/Control Structures/switch|switch]]</code> وبين عبارة <code>case</code> الأولى إلى حدوث خطأ في الصيغة (syntax error). فعلى سبيل المثال الشيفرة التالية غير صالحة:
تحذير: يؤدي وجود أي مخرجات (حتى الفواصل البيضاء) بين عبارة <code>[[PHP/switch|switch]]</code> وبين عبارة <code>case</code> الأولى إلى حدوث خطأ في الصيغة (syntax error). فعلى سبيل المثال الشيفرة التالية غير صالحة:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


سطر 39: سطر 39:
</syntaxhighlight>
</syntaxhighlight>


في حين أن الشيفرة التالية تعدّ صالحةً، إذ تعدّ المسافة البيضاء التي كانت بعد عبارة <code>[[PHP/Control Structures/switch|switch]]</code> جزءًا من علامة الإغلاق <code><?</code>، وبعد حذفها لن يكون هناك أي مخرجات بين عبارتي <code>switch</code> و <code>case</code>:
في حين أن الشيفرة التالية تعدّ صالحةً، إذ تعدّ المسافة البيضاء التي كانت بعد عبارة <code>[[PHP/switch|switch]]</code> جزءًا من علامة الإغلاق <code><?</code>، وبعد حذفها لن يكون هناك أي مخرجات بين عبارتي <code>switch</code> و <code>case</code>:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">



مراجعة 03:30، 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 للمزيد من الأمثلة.

مصادر