حلقة PHP: For، ForEach، while، Do while [مثال]

⚡ ملخص ذكي

تُكرر حلقات PHP كتلة من التعليمات البرمجية حتى يتحقق شرط معين، مما يزيل التكرار غير الضروري.ping ويدعم معالجة المصفوفات. يغطي هذا الشرح أنواع حلقات PHP الأربعة، وهي: for و foreach و while و do-while، مع شرح بناء الجملة والمخططات الانسيابية ومخرجات العمل لكل منها.

  • 🔁 ما تفعله الحلقات: تقوم الحلقة بتشغيل نفس الكتلة بشكل متكرر حتى يتم استيفاء شرطها، مما يوفر عليك كتابة عبارات مكررة.
  • 🔢 لحلقة: يجمع for بين العداد والشرط والزيادة في سطر واحد، مما يجعله مثالياً عندما يكون عدد التكرارات معروفاً.
  • 📦 حلقة التكرار لكل عنصر: تقوم حلقة foreach بالتكرار عبر كل عنصر من عناصر المصفوفة المفهرسة أو الترابطية بدون عداد يدوي.
  • 🔄 حائط اللوب: بينما يتحقق الشرط قبل كل دورة، لذلك قد يتم تشغيل الجسم صفر مرة إذا بدأ الشرط خاطئًا.
  • 1️⃣ حلقة Do-While: تقوم حلقة do-while بفحص الشرط بعد الجزء الرئيسي من الكود، مما يضمن تنفيذ كتلة التعليمات البرمجية مرة واحدة على الأقل.
  • 🧭 اختيار مسار دائري: اختر for و foreach للعد والمصفوفات، بينما استخدم while للتكرارات القائمة على الشروط، واستخدم do-while عندما تكون هناك حاجة إلى تمريرة واحدة مضمونة.
  • 🤖 مساعدة الذكاء الاصطناعي: يمكن لأدوات الذكاء الاصطناعي إعادة هيكلة الحلقات، وتحويل حلقة for إلى دوال مصفوفة، وتحديد سبب الحلقة اللانهائية.

حلقات PHP

الحلقة هي بنية تحكم تكرارية تتضمن تنفيذ نفس كتلة التعليمات البرمجية عدة مرات حتى يتحقق شرط معين. يدعم PHP أربعة أنواع من الحلقات، موضحة في الجدول أدناه.

أنشوطة أفضل ل تم فحص الحالة يتم تشغيله مرة واحدة على الأقل
لـ عدد معروف من التكرارات قبل كل تكرار لا
foreach التكرار على عناصر المصفوفة لكل عنصر من عناصر المصفوفة لا
في حين التكرار طالما أن الشرط قائم قبل كل تكرار لا
افعل اثناء تشغيله مرة واحدة، ثم إعادة فحصه بعد كل تكرار نعم

PHP للحلقة

تُنفّذ حلقة التكرار "for" كتلة من التعليمات البرمجية عددًا محددًا من المرات. وهي الخيار الأمثل عندما تعرف مسبقًا عدد التكرارات المطلوبة.

بناء الجملة. يحتوي على بناء الجملة الأساسي التالي.

<?php
for (initialize; condition; increment){

// code to be executed

}
?>

هنا،

  • "ل…{…}" هي كتلة الحلقة
  • "تهيئة" عادةً ما يكون عددًا صحيحًا؛ ويتم استخدامه لتعيين القيمة الأولية للعداد.
  • "حالة" هذا هو الشرط الذي يتم تقييمه في كل عملية تنفيذ لبرنامج PHP. إذا كانت قيمته صحيحة، يستمر تنفيذ حلقة for. أما إذا كانت قيمته خاطئة، فيتوقف تنفيذ حلقة for.
  • "زيادة راتب" يُستخدم لزيادة القيمة الأولية للعداد الصحيح.

كيف تعمل. يوضح المخطط الانسيابي الموضح أدناه كيفية عمل حلقة for في PHP الأشغال.

PHP للحلقة

كيفية البرمجة. يستخدم الكود أدناه حلقة for لطباعة قيم ضرب 10 في 0 حتى 9.

<?php

for ($i = 0; $i < 10; $i++){

$product = 10 * $i;

echo "The product of 10 * $i is $product <br/>";
}

?>

الإخراج:

The product of 10 * 0 is 0
The product of 10 * 1 is 10
The product of 10 * 2 is 20
The product of 10 * 3 is 30
The product of 10 * 4 is 40
The product of 10 * 5 is 50
The product of 10 * 6 is 60
The product of 10 * 7 is 70
The product of 10 * 8 is 80
The product of 10 * 9 is 90

حلقة foreach في PHP

تُستخدم حلقة foreach في لغة PHP للتكرار عبر قيم المصفوفة. ولها الصيغة الأساسية التالية.

<?php
foreach($array_variable as $array_values){

block of code to be executed

}
?>

هنا،

  • "foreach(...){...}" هذا هو كود كتلة حلقة foreach
  • "$array_variable" هو متغير المصفوفة الذي سيتم تكراره
  • "$array_values" هو المتغير المؤقت الذي يحمل قيمة عنصر المصفوفة الحالي.
  • "كتلة التعليمات البرمجية..." هي قطعة التعليمات البرمجية التي تعمل على قيم المصفوفة

كيف تعمل. يوضح المخطط الانسيابي الموضح أدناه كيفية عمل حلقة foreach.

PHP لكل حلقة

أمثلة عملية. يستخدم الكود أدناه حلقة foreach لقراءة وطباعة عناصر المصفوفة.

<?php

$animals_list = array("Lion","Wolf","Dog","Leopard","Tiger");

foreach($animals_list as $array_values){

echo $array_values . "<br>";

}

?>

الإخراج:

Lion
Wolf
Dog
Leopard
Tiger

لنلقِ نظرة على مثال آخر يقوم بالتكرار عبر مصفوفة متصلة. يستخدم المصفوفة الترابطية كلمات أبجدية رقمية كمفاتيح وصول.

<?php

$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

foreach($persons as $key => $value){

echo "$key is $value"."<br>";

}

?>

تم استخدام الأسماء كمفاتيح صفيف والجنس كقيم.

الإخراج:

Mary is Female
John is Male
Mirriam is Female

حلقة التكرار while في PHP

تُستخدم حلقة while لتنفيذ كتلة من التعليمات البرمجية بشكل متكرر حتى يتم استيفاء الشرط المحدد.

متى تستخدم حلقات while

  • يتم استخدام حلقات while لتنفيذ كتلة من التعليمات البرمجية حتى يصبح شرط معين صحيحًا.
  • يمكنك استخدام حلقة while لقراءة السجلات التي تم إرجاعها من ملف قاعدة بيانات.

أنواع حلقات while

  • افعل اثناء - ينفذ كتلة التعليمات البرمجية مرة واحدة على الأقل قبل تقييم الشرط
  • في حين… - يتحقق من الحالة أولاً. إذا تم تقييمه على أنه صحيح، فسيتم تنفيذ كتلة التعليمات البرمجية طالما كان الشرط صحيحًا. إذا تم تقييمها على خطأ، فسيتم إنهاء تنفيذ الحلقة.

حلقة تكرارية. يحتوي على الصيغة التالية.

<?php
while (condition){

block of code to be executed;

}
?>

هنا،

  • "بينما(…){…}" هو رمز كتلة الحلقة أثناء
  • "حالة" هو الشرط الذي سيتم تقييمه بواسطة حلقة while
  • "كتلة من التعليمات البرمجية ..." هو الكود الذي سيتم تنفيذه في حالة استيفاء الشرط

كيف تعمل. يوضح مخطط التدفق الموضح أدناه كيفية عمل حلقة while.

حائط اللوب

مثال عملي. يستخدم الكود أدناه حلقة while لطباعة الأرقام من 1 إلى 5.

<?php

$i = 0;

while ($i < 5){

echo $i + 1 . "<br>";

$i++;

}

?>

الإخراج:

1
2
3
4
5

حلقة التكرار do while في PHP

الفرق بين حلقة while وحلقة do-while هو أن حلقة do-while يتم تنفيذها مرة واحدة على الأقل قبل تقييم الشرط.

لنلقِ نظرة الآن على الصيغة الأساسية لحلقة do-while.

<?php
do{

block of code to be executed

} while(condition);
?>

هنا،

  • "افعل اثناء(…)" هذا هو كود كتلة حلقة do-while
  • "حالة" هو الشرط الذي سيتم تقييمه بواسطة حلقة while
  • "كتلة من التعليمات البرمجية ..." هو الكود الذي يتم تنفيذه مرة واحدة على الأقل بواسطة حلقة do-while

كيف تعمل. يوضح مخطط التدفق الموضح أدناه كيفية عمل حلقة do-while.

PHP افعل بينما

مثال عملي. سنقوم الآن بتعديل مثال حلقة while وتنفيذه باستخدام حلقة do-while، وتعيين القيمة الأولية للعداد إلى 9.

الكود أدناه يطبق المثال المعدل أعلاه.

<?php

$i = 9;

do{

echo "$i is"." <br>";

}
while($i < 9);

?>

نواتج الكود أعلاه:

9

ملاحظاتيُخرج المثال أعلاه الرقم 9 فقط. وذلك لأن حلقة do-while تُنفذ مرة واحدة على الأقل حتى لو كانت نتيجة الشرط خاطئة.

الأسئلة الشائعة

نعم. استخدم الدالة array_reverse() مع حلقة foreach للتنقل بين العناصر بترتيب عكسي، أو استخدم حلقة for تبدأ من count($array) – 1 وتنقص الفهرس إلى الصفر.

تقبل عبارة break رقمًا، لذا فإن break 2; تُنهي كلاً من الحلقة الداخلية والخارجية في آنٍ واحد. وهذا أنظف من استخدام متغير علامة لإيقاف الحلقة الخارجية.

لا تنتهي الحلقة اللانهائية أبدًا لأن شرطها لا يصبح خاطئًا، وغالبًا ما يكون ذلك بسبب عدم وجود زيادة في قيمة المتغير. تأكد من تغيير قيمة متغير الحلقة في كل دورة، أو أضف أمر إيقاف مؤقت عند الوصول إلى حد معين.

نعم. يمكن للذكاء الاصطناعي اكتشاف العمل المتكرر داخل حلقة تكرارية، واقتراح نقله إلى خارجها، واستبدال الحلقات التكرارية اليدوية بوظائف المصفوفات مثل array_map أو array_filter حيث تجعل الكود أكثر وضوحًا.

نعم. يمكن للذكاء الاصطناعي إعادة كتابة حلقة التكرار القائمة على الفهرسة كحلقة تكرارية (foreach) عند المرور على عناصر مصفوفة، أو كدالة (array_map) أو دالة (array_sum) عندما تقوم الحلقة بتحويل القيم أو جمعها فقط. اختبر الناتج بعد ذلك.

تلخيص هذه التدوينة بـ: