A while loop repeats a set of instructions as long as a condition is true. It helps do tasks multiple times without writing the same code again.
While loop execution model in PHP
<?php while (condition) { // code to repeat } ?>
The condition is checked before each loop. If it is true, the code inside runs.
If the condition is false at the start, the code inside the loop never runs.
$count becomes 4.<?php $count = 1; while ($count <= 3) { echo "Count is $count\n"; $count++; } ?>
$keepGoing becomes false inside the loop.<?php $keepGoing = true; while ($keepGoing) { echo "Running loop\n"; $keepGoing = false; } ?>
This program uses a while loop to print numbers from 1 to 5. It starts at 1 and adds 1 each time until it reaches 5.
<?php // Print numbers from 1 to 5 using while loop $number = 1; while ($number <= 5) { echo "Number: $number\n"; $number++; } ?>
Make sure the condition will eventually become false, or the loop will run forever.
You can change variables inside the loop to control when it stops.
A while loop repeats code while a condition is true.
The condition is checked before each repetition.
Use it when you don't know how many times you need to repeat in advance.
Practice
What does a while loop do in PHP?
Solution
Step 1: Understand the while loop purpose
A while loop repeats its code block while the condition remains true.Step 2: Compare options with definition
Only Repeats code as long as a condition is true matches this behavior exactly.Final Answer:
Repeats code as long as a condition is true -> Option BQuick Check:
while loop = repeat while true [OK]
- Thinking while loops run a fixed number of times
- Confusing while with if statement
- Assuming while loops always run at least once
Which of the following is the correct syntax for a while loop in PHP?
?Solution
Step 1: Check correct while loop syntax
In PHP, the condition must be in parentheses and the block in braces.Step 2: Identify syntax errors in options
while ($i < 5) { echo $i; $i++; } uses correct parentheses and braces. Others miss braces, have semicolon errors, or missing parentheses.Final Answer:
while ($i < 5) { echo $i; $i++; } -> Option CQuick Check:
while (condition) { code } [OK]
- Omitting parentheses around condition
- Adding semicolon after while condition
- Not using braces for multiple statements
What will be the output of this PHP code?
$i = 1;
while ($i <= 3) {
echo $i . ' ';
$i++;
}Solution
Step 1: Trace the loop iterations
Variable $i starts at 1 and increments by 1 each loop until $i > 3.Step 2: Determine output each iteration
Outputs '1 ', then '2 ', then '3 '. Loop stops after $i becomes 4.Final Answer:
1 2 3 -> Option AQuick Check:
Prints 1 to 3 with spaces [OK]
- Including extra number after loop ends
- Missing spaces in output
- Confusing <= with < in condition
Find the error in this PHP while loop code:
$i = 0;
while ($i < 3)
echo $i;
$i++;
Solution
Step 1: Analyze loop structure without braces
Without braces, only the first statement after while runs in loop.Step 2: Identify effect on $i++
$i++ runs after loop ends, causing infinite loop because $i never increments inside loop.Final Answer:
Missing braces causes $i++ to run outside loop -> Option DQuick Check:
Braces needed to include all statements in loop [OK]
- Assuming indentation controls loop body
- Forgetting to increment loop variable inside loop
- Thinking condition syntax is incorrect
You want to print all even numbers from 2 to 10 using a while loop in PHP. Which code correctly does this?
?Solution
Step 1: Identify correct start and condition
Start at 2 and include 10, so condition is $i <= 10.Step 2: Check increment and output
Increment by 2 to get even numbers only, and echo with space.Step 3: Compare options
$i = 2; while ($i <= 10) { echo $i . ' '; $i += 2; } matches all criteria exactly. $i = 1; while ($i <= 10) { if ($i % 2 == 1) echo $i . ' '; $i++; } prints odd numbers: 1 3 5 7 9. $i = 2; while ($i < 10) { echo $i . ' '; $i += 2; } misses 10. $i = 0; while ($i <= 10) { echo $i . ' '; $i += 2; } starts at 0, which is not requested.Final Answer:
$i = 2; while ($i <= 10) { echo $i . ' '; $i += 2; } -> Option AQuick Check:
Start=2, end=10, step=2 [OK]
- Starting at 0 or 1 instead of 2
- Using < instead of <= to exclude 10
- Not incrementing by 2 to get even numbers
Ready to prove it?
Pass the test and this pattern moves unknown
