PHP Conditional Statements
Conditional statements let your code make decisions and execute different blocks based on whether a condition is true or false.
if, if-else, if-elseif-else
The most fundamental control structure. Chain multiple conditions with elseif.
<?php
$score = 75;
if ($score >= 90) {
echo "Grade: A";
} elseif ($score >= 80) {
echo "Grade: B";
} elseif ($score >= 70) {
echo "Grade: C";
} elseif ($score >= 60) {
echo "Grade: D";
} else {
echo "Grade: F";
}
// Output: Grade: C
// Nested if
$age = 20;
$hasLicense = true;
if ($age >= 18) {
if ($hasLicense) {
echo "Can drive";
} else {
echo "Need a license";
}
}
?>
switch-case
Use switch when comparing one variable against many possible values. Don't forget break to prevent fall-through.
<?php
$day = "Monday";
switch ($day) {
case "Monday":
case "Tuesday":
case "Wednesday":
case "Thursday":
case "Friday":
echo "Weekday";
break;
case "Saturday":
case "Sunday":
echo "Weekend";
break;
default:
echo "Unknown day";
}
// Output: Weekday
?>
match Expression (PHP 8)
match is a stricter, expression-based alternative to switch. It uses strict comparison (===), returns a value, and throws an error if no arm matches.
<?php
$status = 2;
$label = match($status) {
1 => "Active",
2 => "Inactive",
3, 4 => "Pending",
default => "Unknown",
};
echo $label; // Inactive
// Ternary operator
$age = 20;
$result = ($age >= 18) ? "Adult" : "Minor";
echo $result; // Adult
// Null coalescing operator (??)
$username = $_GET['user'] ?? "Guest";
echo $username; // Guest (if 'user' not in $_GET)
// Null coalescing assignment (??=)
$config = [];
$config['theme'] ??= "dark"; // sets only if null/undefined
echo $config['theme']; // dark
?>
Ready to Level Up Your Skills?
Explore 500+ free tutorials across 20+ languages and frameworks.