Loops repeat a block while a counter changes.

for loop A `for` loop can initialize a counter, test a condition, and update the counter after each pass.

Loops

limit
loops.php
Replay: real traced execution (multi-file project)
<?php
$limit = 4;
$total = 0;

for ($number = 1; $number <= $limit; $number++) {
    $total += $number;
}

echo "limit=" . $limit . "\n";
echo "total=" . $total . "\n";
<?php
$limit = 2;
$total = 0;

for ($number = 1; $number <= $limit; $number++) {
    $total += $number;
}

echo "limit=" . $limit . "\n";
echo "total=" . $total . "\n";
<?php
$limit = 6;
$total = 0;

for ($number = 1; $number <= $limit; $number++) {
    $total += $number;
}

echo "limit=" . $limit . "\n";
echo "total=" . $total . "\n";
  1. $limit ← 4, $total ← 0

    1<?php2$limit→ 4 = 4; //@limit=2, 63$total→ 0 = 0;
  2. $total ← 1

    pass 1 of 4
    5for ($number1 = 1; $number <= $limit4; $number++) {6    $total→ 1 += $number1;7}
    All 4 passes — pass 1 is the card above
    pass$number$total
    110 1
    221 3
    333 6
    446 10
  3. echo "limit=" . $limit . " ";

    9echo "limit=" . $limit4 . "\n";10echo "total=" . $total10 . "\n";
    outputlimit=4
    total=10
  1. $limit ← 2, $total ← 0

    1<?php2$limit→ 2 = 2;3$total→ 0 = 0;
  2. $total ← 1

    pass 1 of 2
    5for ($number1 = 1; $number <= $limit2; $number++) {6    $total→ 1 += $number1;7}
  3. $total ← 3

    pass 2 of 2
    5for ($number2 = 1; $number <= $limit2; $number++) {6    $total→ 3 += $number2;7}
  4. echo "limit=" . $limit . " ";

    9echo "limit=" . $limit2 . "\n";10echo "total=" . $total3 . "\n";
    outputlimit=2
    total=3
  1. $limit ← 6, $total ← 0

    1<?php2$limit→ 6 = 6;3$total→ 0 = 0;
  2. $total ← 1

    pass 1 of 6
    5for ($number1 = 1; $number <= $limit6; $number++) {6    $total→ 1 += $number1;7}
    All 6 passes — pass 1 is the card above
    pass$number$total
    110 1
    221 3
    333 6
    446 10
    5510 15
    6615 21
  3. echo "limit=" . $limit . " ";

    9echo "limit=" . $limit6 . "\n";10echo "total=" . $total21 . "\n";
    outputlimit=6
    total=21

Follow the Loop

  1. $limit starts at 4.
  2. $total starts at 0.
  3. The loop adds 1, then 2, then 3, then 4.
  4. $total becomes 10.
  5. The program prints limit=4 and total=10. | limit | numbers added | total | | --- | --- | --- | | 2 | 1, 2 | 3 | | 4 | 1, 2, 3, 4 | 10 | | 6 | 1, 2, 3, 4, 5, 6 | 21 |

Exercise: loops.php

Reproduce total=10 for limit 4, then try limit 2 and 6 and predict each total before running it.