Control Flow
## Learning Objectives
- Master if, else if, else statements
- Understand switch statements
- Learn for, foreach, while, do-while loops
- Use break, continue, and match expression
## if Statement
### Basic if
```php
= 18) {
echo "Adult";
}
?>
```
### if-else
```php
= 18) {
echo "Adult";
} else {
echo "Minor";
}
?>
```
### if-else if-else
```php
= 90) {
$grade = "A";
} elseif ($score >= 80) {
$grade = "B";
} elseif ($score >= 70) {
$grade = "C";
} elseif ($score >= 60) {
$grade = "D";
} else {
$grade = "F";
}
echo "Grade: " . $grade;
?>
```
### Alternative Syntax
```php
= 18):
echo "Adult";
elseif ($age >= 13):
echo "Teenager";
else:
echo "Child";
endif;
?>
```
## Ternary Operator
```php
= 18) ? "Adult" : "Minor";
echo $status; // Adult
// With else-if (avoid nesting)
$grade = ($score >= 90) ? "A"
: ($score >= 80) ? "B"
: ($score >= 70) ? "C"
: "F";
?>
```
### Null Coalescing as Ternary Alternative
```php
```
## switch Statement
### Basic switch
```php
```
### switch with Multiple Values
```php
```
### switch without break (Fall-through)
```php
```
### Alternative Switch Syntax
```php
```
## match Expression (PHP 8)
### Basic match
```php
"Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday",
7 => "Sunday",
};
echo $dayName;
?>
```
### Multiple Values
```php
31,
4, 6, 9, 11 => 30,
2 => 28,
};
echo "Days: " . $days;
?>
```
### Default Clause
```php
"A",
80, 81, 82, 83, 84, 85, 86, 87, 88, 89 => "B",
70, 71, 72, 73, 74, 75, 76, 77, 78, 79 => "C",
default => "Need improvement",
};
?>
```
### match vs switch
```php
"Match!", // Won't match
"10" => "Exact match!", // This matches
};
?>
```
## for Loop
### Basic for
```php
```
### Multiple Loop Variables
```php
```
### Counting Down
```php
0; $i--) {
echo $i . "\n"; // 5, 4, 3, 2, 1
}
?>
```
### Stepping by N
```php
```
## foreach Loop
### Indexed Arrays
```php
```
### With Index
```php
$color) {
echo "$index: $color\n";
}
// 0: red
// 1: green
// 2: blue
?>
```
### Associative Arrays
```php
"Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}
?>
```
### By Reference
```php
```
## while Loop
### Basic while
```php
```
### while with Condition First
```php
```
## do-while Loop
### Executes at Least Once
```php
```
### Menu Example
```php
```
## break and continue
### break - Exit Loop
```php
```
### break with Level
```php
4) {
$found = true;
break 2; // Break outer loop
}
}
}
?>
```
### continue - Skip Iteration
```php
```
### continue with Level
```php
```
## Nested Loops
### Basic Nesting
```php
```
### Triangle Pattern
```php
```
## Common Patterns
### Sum 1 to N
```php
```
### Find in Array
```php
```
### Count Matches
```php
```
### FizzBuzz
```php
```
## Summary
- if/elseif/else for conditional logic
- switch for multiple discrete values (uses loose comparison)
- match (PHP 8+) for strict comparison, returns values
- for loop for known iterations
- foreach for arrays (by value or reference)
- while for condition-based iteration
- do-while for at-least-once iteration
- break exits loop; continue skips iteration
- Specify break/continue level for nested loops
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →