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

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(تعديلات طفيفة)
 
(6 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة)
سطر 2: سطر 2:
 
(PHP 4, PHP 5, PHP 7)
 
(PHP 4, PHP 5, PHP 7)
  
تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي <code>[[PHP/Control Structures/if|if]]</code> و <code>[[PHP/Control Structures/while|while]]</code> و <code>[[PHP/Control Structures/for|for]]</code> و <code>[[PHP/Control Structures/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/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">
  
سطر 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/if|if]]</code> إضافةً إلى <code>[[PHP/elseif|elseif]]</code> و <code>[[PHP/else|else]]</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">
  
سطر 48: سطر 48:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
راجع أيضًا <code>[[PHP/Control Structures/while|while]]</code> و <code>[[PHP/Control Structures/for|for]]</code> و <code>[[PHP/Control Structures/if|if]]</code> للمزيد من الأمثلة.
+
== انظر أيضًا ==
 +
* بنية <code>[[PHP/while|while]]</code> : تنفيذ دورات تكراريّة.
 +
* بنية <code>[[PHP/for|for]]</code> : تنفيذ دورات تكراريّة.
 +
* بنية <code>[[PHP/if|if]]</code> : تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة.
  
 
== مصادر ==
 
== مصادر ==

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

مصادر