الفرق بين المراجعتين لصفحة: «PHP/do-while»
ط استبدال النص - 'PHP/Control Structures/goto' ب'PHP/goto' |
رؤيا-بنعطية (نقاش | مساهمات) تعديلات طفيفة |
||
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين) | |||
سطر 2: | سطر 2: | ||
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
حلقات <code>do-while</code> مشابهة جدًّا لحلقات <code>[[PHP | حلقات <code>do-while</code> مشابهة جدًّا لحلقات <code>[[PHP/while|while]]</code>، باستثناء أنّها عملية التحقق من الشرط تحدث في نهاية الدورة بدلًا من بدايتها. ما يميز هذه الحلقات عن حلقات <code>[[PHP/while|while]]</code> هو أنّ الدورة الأولى في حلقات <code>do-while</code> ستنفّذ في جميع الأحوال (تحدث عملية التحقق في نهاية الدورة فقط) في حين أن الدورة الأولى في حلقات <code>[[PHP/while|while]]</code> قد لا تنفّذ بالضرورة (تحدث عملية التحقق في بداية كل دورة، وإن كانت النتيجة FALSE منذ البداية تتوقف الحلقة عن العمل مباشرة). | ||
هناك صيغة واحدة لحلقات <code>do-while</code> وهي: | هناك صيغة واحدة لحلقات <code>do-while</code> وهي: |
المراجعة الحالية بتاريخ 16:28، 7 يونيو 2018
(PHP 4, PHP 5, PHP 7)
حلقات do-while
مشابهة جدًّا لحلقات while
، باستثناء أنّها عملية التحقق من الشرط تحدث في نهاية الدورة بدلًا من بدايتها. ما يميز هذه الحلقات عن حلقات while
هو أنّ الدورة الأولى في حلقات do-while
ستنفّذ في جميع الأحوال (تحدث عملية التحقق في نهاية الدورة فقط) في حين أن الدورة الأولى في حلقات while
قد لا تنفّذ بالضرورة (تحدث عملية التحقق في بداية كل دورة، وإن كانت النتيجة FALSE منذ البداية تتوقف الحلقة عن العمل مباشرة).
هناك صيغة واحدة لحلقات do-while
وهي:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
ستعمل الحلقة التكرارية السابقة مرة واحدة فقط، إذ تصبح نتيجة التحقق من صحة التعبير هي FALSE (إذ لا تكون $i أكبر من 0) ويتوقف تنفيذ الحلقة تمامًا.
هناك طريقة أخرى لاستخدام حلقات do-while
قد تكون مألوفة لدى المبرمجين الخبراء في لغة C، والهدف منها هو إيقاف التنفيذ في منتصف الشيفرة وذلك بإحاطتها بعبارة do-while (0)
، واستخدام عبارة break
. توضّح الشيفرة التالية هذه الطريقة:
<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while (0);
?>
إن لم تتمكن من فهم الشيفرة السابقة فلا تقلق، إذ يمكنك كتابة شيفرات قوية دون الحاجة إلى استخدام هذه الخاصية، إذ يمكن ومنذ الإصدار 5.3.0 من PHP استخدام العامل goto
بدلًا من هذه الطريقة.