بالنسبة إلى الحلقات ، فإن الحلقات البسيطة هي التي تساعدنا على التكرار عبر متغير قابل للتكرار باستخدام index . هناك نوعان من الحلقات – حلقة بسيطة (نمط C) For loop وحلقة foreach.
For loop
بالنسبة إلى For loop ، تكون الحلقات مفيدة جدًا عندما نحتاج إلى التكرار عبر مصفوفة والرجوع إلى عضو الصفيف باستخدام index متغير. على سبيل المثال ، لنفترض أن لدينا قائمة بالأرقام الفردية. لطبعها ، نحتاج إلى الرجوع إلى كل عنصر على حدة. يمكن للكود الذي نكتبه في الحلقة for استخدام index i ، والذي يتغير في كل تكرار للحلقة for.
$odd_numbers = [1,3,5,7,9]; for ($i = 0; $i < count($odd_numbers); $i=$i+1) { $odd_number = $odd_numbers[$i]; echo $odd_number . "\n"; }
يعرف السطر الأول من الحلقة عن 3 أجزاء:
The initialization statement – في حالتنا ، نقوم بتهيئة متغير المكرر $ i إلى 0.
The condition statement – يتم تقييم هذه العبارة في كل حلقة. تتوقف الحلقة عند عدم تحقق هذا الشرط. سيحدث هذا عندما يكون متغير المكرر $ i أكبر من طول المصفوفة.
The increment statement – يتم تنفيذ هذه العبارة في كل تكرار لزيادة متغير index بالمبلغ المطلوب. عادة ، سنقوم بزيادة $ i بمقدار 1. هناك طريقتان أقصر لزيادة متغير بمقدار 1 أيضًا. يمكننا استخدام $ i + = 1 أو $ i ++ أيضًا.
حلقة Foreach
تتكرر حلقة foreach عبر عنصر قابل للتكرار مثل مصفوفة أو كائن ، مما يوفر الأعضاء في متغير محدد في كل مرة.
على سبيل المثال ، لنفترض أننا نريد إنشاء قائمة بجميع الأرقام الفردية بين 1 و 10 ، وطباعتها واحدة تلو الأخرى ، كما في المثال السابق. هذه المرة ، سوف نستخدم عبارة foreach بدلاً من العبارة العادية للحلقة مع متغير المكرر. بدلاً من استخدام متغير iterator كمؤشر للصفيف ، نحصل على العنصر من الصفيف مباشرة إلى المتغير $ odd_number.
$odd_numbers = [1,3,5,7,9]; foreach ($odd_numbers as $odd_number) { echo $odd_number . "\n"; }
عند التكرار فوق المصفوفات باستخدام المفاتيح ، يمكننا استخدام بناء الجملة التالي:
$phone_numbers = [ "Ahmad" => "415-235-8573", "Hicham" => "415-492-4856", ]; foreach ($phone_numbers as $name => $number) { echo "$name's number is $number.\n"; }
تمرين
اطبع كل الأرقام داخل المصفوفة ، واحدًا تلو الآخر ، باستخدام \ n تسلسل أحرف سطر جديد للفصل بين النتائج.
<?php $even_numbers = [2,4,6,8,10,12,14,16,18,20]; ?>
الحل
<?php $even_numbers = [2,4,6,8,10,12,14,16,18,20]; foreach ($even_numbers as $even_number) { echo $even_number . "\n"; } ?>
سنحصل على النتيجة التالية عند التشغيل
2 4 6 8 10 12 14 16 18 20