0Pricing
PHP Academy · درس

حلقتا for وwhile

كرّروا الشيفرة باستخدام حلقات for وwhile وdo-while.

حلقتا for وwhile درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

لماذا نستخدم الحلقات؟

تتيح لك الحلقات تكرار كتلة من الشيفرة دون نسخها ولصقها. توفر PHP أربع بنيات للحلقات:

  • for — عند معرفة عدد التكرارات
  • while — يتحكم فيه شرط
  • do-while — يُنفَّذ مرة واحدة على الأقل
  • foreach — يكرّر على المصفوفات والكائنات (في الدرس التالي)

حلقة for

تتكون حلقة for من ثلاثة أجزاء: التهيئة، والشرط، والزيادة:

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i . ' ';
}
// Output: 0 1 2 3 4

العد التنازلي باستخدام for

يمكنك العد تنازليًا أو تغيير العدد بمقدار تختاره:

<?php
// Count down
for ($i = 10; $i >= 1; $i--) {
    echo $i . ' ';
}

// Step by 2
for ($i = 0; $i <= 10; $i += 2) {
    echo $i . ' ';  // 0 2 4 6 8 10
}

حلقة while

تستمر حلقة while ما دام شرطها صحيحًا — ويُفحَص الشرط قبل كل تكرار:

<?php
$n = 1;

while ($n <= 5) {
    echo $n . ' ';
    $n++;
}
// Output: 1 2 3 4 5

حلقة do-while

تنفّذ do-while جسمها مرة واحدة على الأقل دائمًا — ويُفحَص الشرط بعد التنفيذ:

<?php
$attempt = 0;

do {
    echo 'Trying... attempt ' . ($attempt + 1) . PHP_EOL;
    $attempt++;
} while ($attempt < 3 && !connectToServer());

function connectToServer(): bool { return false; }

حلقة لا نهائية وbreak

تستمر الحلقة اللانهائية إلى الأبد ما لم تستخدم break للخروج منها:

<?php
$count = 0;

while (true) {
    $count++;
    if ($count >= 5) {
        break;  // exit loop
    }
}

echo $count; // 5

continue — تخطي تكرار

يتخطى continue بقية التكرار الحالي وينتقل إلى التكرار التالي:

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 === 0) {
        continue;  // skip even numbers
    }
    echo $i . ' ';  // 1 3 5 7 9
}

الحلقات المتداخلة

يمكن تداخل الحلقات — وهذا مفيد للبيانات ثنائية الأبعاد مثل الشبكات أو الجداول:

<?php
for ($row = 1; $row <= 3; $row++) {
    for ($col = 1; $col <= 3; $col++) {
        echo "($row,$col) ";
    }
    echo PHP_EOL;
}
// (1,1) (1,2) (1,3)
// (2,1) (2,2) (2,3)
// (3,1) (3,2) (3,3)

الخروج من الحلقات المتداخلة

استخدم break 2 (أو أي رقم) للخروج من عدة مستويات من الحلقات دفعة واحدة:

<?php
for ($i = 0; $i < 5; $i++) {
    for ($j = 0; $j < 5; $j++) {
        if ($i === 2 && $j === 2) {
            break 2;  // exits both loops
        }
        echo "$i,$j ";
    }
}

نصائح لتحسين أداء الحلقات

تجنب العمليات المكلفة داخل شروط الحلقات:

<?php
// Bad: count() called on every iteration
for ($i = 0; $i < count($arr); $i++) { /* ... */ }

// Good: calculate once
$len = count($arr);
for ($i = 0; $i < $len; $i++) { /* ... */ }

// Also fine: foreach avoids this entirely
foreach ($arr as $item) { /* ... */ }

صيغة الحلقات البديلة

مثل if، تدعم الحلقات صيغة النقطتين البديلة لتضمينها في HTML:

<?php $items = ['apple', 'banana', 'cherry']; ?>
<ul>
<?php for ($i = 0; $i < count($items); $i++): ?>
    <li><?= htmlspecialchars($items[$i]) ?></li>
<?php endfor; ?>
</ul>

تحقق سريع

أي حلقة يُضمن أن تنفّذ جسمها مرة واحدة على الأقل؟

مراجعة: حلقتا for وwhile

ملخص الحلقات:

  • for — الأفضل عندما يكون عدد التكرارات معلومًا
  • while — يُفحَص الشرط قبل كل تكرار
  • do-while — يُنفَّذ الجسم مرة واحدة على الأقل
  • break يخرج من الحلقة؛ أما break N فيخرج من N من المستويات
  • continue ينتقل إلى التكرار التالي

التالي: استخدام foreach للتكرار على المصفوفات.

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

هل درس «حلقتا for وwhile» مجاني؟

نعم — نص درس «حلقتا for وwhile» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «حلقتا for وwhile»؟

كرّروا الشيفرة باستخدام حلقات for وwhile وdo-while. تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «حلقتا for وwhile»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏if وelseif وelse
  2. عبارات Switch وMatch
  3. حلقتا for وwhile
  4. ‏foreach والتحكم في الحلقات
← العودة إلى PHP Academy