If Statements & Conditionals
⏱ 15 min read read
The if Statement:
if ($condition) {
// runs if true
} elseif ($other) {
// PHP uses elseif (one word) --- not else if
} else {
// runs if all above are false
}
PHP uses elseif (one word) --- not "else if" like Java.
(else if with a space works too, but elseif is the PHP convention.)
Curly braces {} are required for multi-line blocks.
ALWAYS use === for comparisons --- never == (type juggling!).
Truthy and Falsy Values:
PHP treats these as false: 0, 0.0, "", "0", [], null, false.
Everything else is truthy, including negative numbers and non-empty
strings.
if ($name) { ... } // same as: if ($name !== "" && $name !==
null)
if ($count) { ... } // same as: if ($count !== 0)
if ($items) { ... } // same as: if (!empty($items))
switch Statement:
switch ($day) {
case 1: echo "Monday"; break;
case 2: echo "Tuesday"; break;
case 6:
case 7: echo "Weekend!"; break; // fall-through
default: echo "Unknown";
}
match Expression (PHP 8+):
Cleaner than switch. Strict comparison (===). Returns a value. No
fall-through.
$result = match($score) {
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 => "A",
80, 81, 82, 83, 84, 85, 86, 87, 88, 89 => "B",
default => "F",
};
Ternary & Null Coalescing:
// Ternary: condition ? value_if_true : value_if_false
$status = $age >= 18 ? "Adult" : "Minor";
// Null coalescing (??) --- PHP 7+
$name = $\_GET['name'] ?? 'Guest'; // uses 'Guest' if
null/missing
// Null coalescing assignment (??=) --- PHP 7.4+
$name ??= 'Guest';
if ($condition) {
// runs if true
} elseif ($other) {
// PHP uses elseif (one word) --- not else if
} else {
// runs if all above are false
}
PHP uses elseif (one word) --- not "else if" like Java.
(else if with a space works too, but elseif is the PHP convention.)
Curly braces {} are required for multi-line blocks.
ALWAYS use === for comparisons --- never == (type juggling!).
Truthy and Falsy Values:
PHP treats these as false: 0, 0.0, "", "0", [], null, false.
Everything else is truthy, including negative numbers and non-empty
strings.
if ($name) { ... } // same as: if ($name !== "" && $name !==
null)
if ($count) { ... } // same as: if ($count !== 0)
if ($items) { ... } // same as: if (!empty($items))
switch Statement:
switch ($day) {
case 1: echo "Monday"; break;
case 2: echo "Tuesday"; break;
case 6:
case 7: echo "Weekend!"; break; // fall-through
default: echo "Unknown";
}
match Expression (PHP 8+):
Cleaner than switch. Strict comparison (===). Returns a value. No
fall-through.
$result = match($score) {
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 => "A",
80, 81, 82, 83, 84, 85, 86, 87, 88, 89 => "B",
default => "F",
};
Ternary & Null Coalescing:
// Ternary: condition ? value_if_true : value_if_false
$status = $age >= 18 ? "Adult" : "Minor";
// Null coalescing (??) --- PHP 7+
$name = $\_GET['name'] ?? 'Guest'; // uses 'Guest' if
null/missing
// Null coalescing assignment (??=) --- PHP 7.4+
$name ??= 'Guest';
Log in to track your progress and earn badges as you complete lessons.
Log In to Track Progress