Home Quizzes Leaderboard Competitions Learn Hire Us
About Contact
Log In Sign Up
Learn PHP If Statements & Conditionals

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';
Code Example
<?php

$score = 85;

// if / elseif / else

if ($score >= 90) {

echo "Grade: A\n";

} elseif ($score >= 80) {

echo "Grade: B\n";

} elseif ($score >= 70) {

echo "Grade: C\n";

} elseif ($score >= 60) {

echo "Grade: D\n";

} else {

echo "Grade: F\n";

}

// Output: Grade: B

// Truthy / falsy

$name = "";

if ($name) {

echo "Hello, $name\n";

} else {

echo "No name provided\n"; // prints this

}

// match --- PHP 8+ (strict ===, no fall-through)

$day = 3;

$dayName = match($day) {

1 => "Monday",

2 => "Tuesday",

3 => "Wednesday",

6, 7 => "Weekend!",

default => "Invalid day",

};

echo $dayName . "\n"; // Wednesday

// Ternary

$age = 20;

$status = $age >= 18 ? "Adult" : "Minor";

echo $status . "\n"; // Adult

// Null coalescing

$username = $\_GET['username'] ?? 'Guest';

echo $username . "\n"; // Guest (no query string)

// String comparison --- === works! (Unlike Java, no .equals())

$user = "admin";

if ($user === "admin") {

echo "Welcome admin!\n";

}

?>
← Operators & Math Loops →

Log in to track your progress and earn badges as you complete lessons.

Log In to Track Progress