--- title: For Loop localeTitle: لحلقة --- ## لحلقة في PHP `for` بيان يتكون من ثلاث عبارات وبيان: `for ((initialization); (condition); (final-expression)) statement` ### وصف * التهيئة * تشغيل قبل تنفيذ الأول في الحلقة. * يستخدم هذا التعبير عادة لإنشاء عدادات. * يتم تحديد نطاق المتغيرات التي تم إنشاؤها هنا للحلقة. بمجرد الانتهاء من الحلقة يتم تنفيذ ذلك يتم تدميرها. * شرط * التعبير الذي تم فحصه قبل تنفيذ كل تكرار. * إذا تم حذف هذا التعبير يتم تقييمه إلى " `true` . * التعبير عن النهائي * التعبير الذي يتم تشغيله بعد كل عملية تكرار. * عادة ما تستخدم لزيادة عداد. * ولكن يمكن استخدامها لتشغيل أي تعبير. * بيان * رمز لتكرار في كل تكرار حلقة. يمكن استخدام أي من هذه التعبيرات الثلاثة أو العبارة. يمكن أن تحتوي التعبيرات على تعبيرات متعددة مفصولة بفواصل. في التعبير (الشرط) ، سيتم تقييم كل تعبيرات الفاصلة المنفصلة. يتم الحصول على النتيجة من آخر واحد. للحلقات المستخدمة عادة لحساب عدد معين من التكرار لتكرار العبارة. ### المخاطر المشتركة #### تجاوز حدود صفيف عند الفهرسة عبر مصفوفة عدة مرات ، من السهل تجاوز حدود الصفيف (على سبيل المثال ، حاول أن ترجع العنصر الرابع في صفيف مكون من 3 عناصر). `// This will cause an error. // The bounds of the array will be exceeded. $arr = array(1,2,3); for ($i = 0; $i <= count($arr); $i++) { var_dump($arr[$i]); } ` هذا سوف يخرج: `int(1) int(2) int(3) NULL ` هناك طرق لإصلاح هذا الرمز. قم بتعيين الشرط إما `$i < count($arr)` أو `$i <= count($arr) - 1` . #### قضايا الأداء يمكن أن يصبح الرمز أعلاه بطيئًا ، نظرًا لجلب حجم الصفيف في كل تكرار. لحل هذه المشكلة ، من الممكن وضع حجم الصفيف في متغير. `//create the $size variable with a second expression comma separated for ($i = 0, $size = count($arr); $i < $size; ++$i) { ` ### معلومات اكثر * [PHP.net - هياكل التحكم](https://secure.php.net/manual/en/control-structures.for.php)