الفرق بين المراجعتين لصفحة: «PHP/continue»
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
رؤيا-بنعطية (نقاش | مساهمات) تعديلات طفيفة |
||
(4 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 2: | سطر 2: | ||
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. | تستخدم <code>continue</code> في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. | ||
تأخذ <code>continue</code> معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. | تأخذ <code>continue</code> معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. | ||
ملاحظة: تعدّ عبارة <code>[[PHP | ملاحظة: تعدّ عبارة <code>[[PHP/switch|switch]]</code> في PHP من الحلقات التكرارية عند الحديث عن <code>continue</code>. تسلك <code>continue</code> سلوك <code>[[PHP/break|break]]</code> (في حال عدم توفر المعاملات). إن استُخدمت <code>switch</code> داخل حلقة تكرارية سيؤدي استخدام <code>continue 2</code> إلى الانتقال إلى الدورة التالية في الحلقة الخارجية. | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
سطر 46: | سطر 46: | ||
يمكنك أن تتوقع أن الشيفرة السابقة ستعطي النتيجة التالية: | يمكنك أن تتوقع أن الشيفرة السابقة ستعطي النتيجة التالية: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="text"> | ||
0 | 0 | ||
سطر 54: | سطر 54: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
إلا أنّ مخرجات هذه الشيفرة في الإصدارات السابقة لإصدار 5.4.0 هي: | إلا أنّ مخرجات هذه الشيفرة في الإصدارات السابقة لإصدار 5.4.0 هي: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="text"> | ||
2 | 2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
تعامل اللغة التعبير <code>continue print "$i\n";</code> على أنّه تعبير واحد؛ لذا تستدعى الدالة <code>print</code> في حالة واحدة فقط وهي عندما يكون التعبير <code>$i == 2</code>صحيحًا (تمرّر القيمة المعادة من الدالة <code>[[PHP | تعامل اللغة التعبير <code>continue print "$i\n";</code> على أنّه تعبير واحد؛ لذا تستدعى الدالة <code>print</code> في حالة واحدة فقط وهي عندما يكون التعبير <code>$i == 2</code>صحيحًا (تمرّر القيمة المعادة من الدالة <code>[[PHP/print|print]]</code> كمعامل رقمي للتعبير <code>continue</code>). | ||
ملاحظة: منذ الإصدار 5.4.0 سيطلق المثال السابق خطأً من النوع E_COMPLIE_ERROR. | ملاحظة: منذ الإصدار 5.4.0 سيطلق المثال السابق خطأً من النوع E_COMPLIE_ERROR. |
المراجعة الحالية بتاريخ 15:49، 6 يونيو 2018
(PHP 4, PHP 5, PHP 7)
تستخدم continue
في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية.
تأخذ continue
معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية.
ملاحظة: تعدّ عبارة switch
في PHP من الحلقات التكرارية عند الحديث عن continue
. تسلك continue
سلوك break
(في حال عدم توفر المعاملات). إن استُخدمت switch
داخل حلقة تكرارية سيؤدي استخدام continue 2
إلى الانتقال إلى الدورة التالية في الحلقة الخارجية.
<?php
while (list($key, $value) = each($arr)) {
if (!($key % 2)) {
// تجاوز الأعداد الزوجية
continue;
}
do_something_odd($value);
}
$i = 0;
while ($i++ < 5) {
echo "Outer<br />\n";
while (1) {
echo "Middle<br />\n";
while (1) {
echo "Inner<br />\n";
continue 3;
}
echo "This never gets output.<br />\n";
}
echo "Neither does this.<br />\n";
}
?>
حذف الفاصلة المنقوطة بعد continue
قد يؤدي إلى حدوث بعض الأخطاء. إليك مثالًا لما لا يجب عليك القيام به:
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
يمكنك أن تتوقع أن الشيفرة السابقة ستعطي النتيجة التالية:
0
1
3
4
إلا أنّ مخرجات هذه الشيفرة في الإصدارات السابقة لإصدار 5.4.0 هي:
2
تعامل اللغة التعبير continue print "$i\n";
على أنّه تعبير واحد؛ لذا تستدعى الدالة print
في حالة واحدة فقط وهي عندما يكون التعبير $i == 2
صحيحًا (تمرّر القيمة المعادة من الدالة print
كمعامل رقمي للتعبير continue
).
ملاحظة: منذ الإصدار 5.4.0 سيطلق المثال السابق خطأً من النوع E_COMPLIE_ERROR.
سجل التغييرات
الإصدار | الوصف |
---|---|
5.4.0 | لم تعد continue 0; مدعومةً في هذا الإصدار. في الإصدارات السابقة كانت هذه العبارة تفسر كما تفسر continue 1;
|
5.4.0 | إلغاء القدرة على تمرير المتغيرات كمعاملات رقمية، مثال:
|