| 
									
										
										
										
											2018-10-12 16:35:31 -04:00
										 |  |  | --- | 
					
						
							|  |  |  | title: For Loop | 
					
						
							|  |  |  | localeTitle: لحلقة | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | ## لحلقة
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | في PHP `for` بيان يتكون من ثلاث عبارات وبيان: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `for ((initialization); (condition); (final-expression)) statement` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### وصف
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *   التهيئة | 
					
						
							|  |  |  |     *   تشغيل قبل تنفيذ الأول في الحلقة. | 
					
						
							|  |  |  |     *   يستخدم هذا التعبير عادة لإنشاء عدادات. | 
					
						
							|  |  |  |     *   يتم تحديد نطاق المتغيرات التي تم إنشاؤها هنا للحلقة. بمجرد الانتهاء من الحلقة يتم تنفيذ ذلك يتم تدميرها. | 
					
						
							|  |  |  | *   شرط | 
					
						
							|  |  |  |     *   التعبير الذي تم فحصه قبل تنفيذ كل تكرار. | 
					
						
							|  |  |  |     *   إذا تم حذف هذا التعبير يتم تقييمه إلى " `true` . | 
					
						
							|  |  |  | *   التعبير عن النهائي | 
					
						
							|  |  |  |     *   التعبير الذي يتم تشغيله بعد كل عملية تكرار. | 
					
						
							|  |  |  |     *   عادة ما تستخدم لزيادة عداد. | 
					
						
							|  |  |  |     *   ولكن يمكن استخدامها لتشغيل أي تعبير. | 
					
						
							|  |  |  | *   بيان | 
					
						
							|  |  |  |     *   رمز لتكرار في كل تكرار حلقة. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | يمكن استخدام أي من هذه التعبيرات الثلاثة أو العبارة. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | يمكن أن تحتوي التعبيرات على تعبيرات متعددة مفصولة بفواصل. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | في التعبير (الشرط) ، سيتم تقييم كل تعبيرات الفاصلة المنفصلة. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | يتم الحصول على النتيجة من آخر واحد. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | للحلقات المستخدمة عادة لحساب عدد معين من التكرار لتكرار العبارة. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### المخاطر المشتركة
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### تجاوز حدود صفيف
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | عند الفهرسة عبر مصفوفة عدة مرات ، من السهل تجاوز حدود الصفيف (على سبيل المثال ، حاول أن ترجع العنصر الرابع في صفيف مكون من 3 عناصر). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-20 14:59:02 -07:00
										 |  |  | ```php | 
					
						
							|  |  |  | // 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]); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ```  | 
					
						
							| 
									
										
										
										
											2018-10-12 16:35:31 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | هذا سوف يخرج: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-20 14:59:02 -07:00
										 |  |  | ```txt | 
					
						
							|  |  |  | int(1) int(2) int(3) NULL | 
					
						
							|  |  |  | ```  | 
					
						
							| 
									
										
										
										
											2018-10-12 16:35:31 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | هناك طرق لإصلاح هذا الرمز. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | قم بتعيين الشرط إما `$i < count($arr)` أو `$i <= count($arr) - 1` . | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### قضايا الأداء
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | يمكن أن يصبح الرمز أعلاه بطيئًا ، نظرًا لجلب حجم الصفيف في كل تكرار. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | لحل هذه المشكلة ، من الممكن وضع حجم الصفيف في متغير. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-20 14:59:02 -07:00
										 |  |  | ```php | 
					
						
							|  |  |  | //create the $size variable with a second expression comma separated | 
					
						
							|  |  |  | for ($i = 0, $size = count($arr); $i < $size; ++$i) { | 
					
						
							|  |  |  | ```  | 
					
						
							| 
									
										
										
										
											2018-10-12 16:35:31 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### معلومات اكثر
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *   [PHP.net - هياكل التحكم](https://secure.php.net/manual/en/control-structures.for.php) |