Table of Contents
- Introduction to Conditional Logic
- Importance of Conditional Statements
if
Statement in PHPif...else
Statementif...elseif...else
Ladder- Nested
if
Statements switch
Statement in PHPmatch
Expression (PHP 8+)- Best Practices for Using Conditionals
- Common Pitfalls to Avoid
- Real-World Examples
- Summary
Introduction to Conditional Logic
Conditional statements are at the heart of programming logic. They allow your code to make decisions based on certain conditions. In PHP, these decisions help determine the flow of execution—what code runs and when.
Whether you’re checking user input, validating a form, or controlling access permissions, conditional statements are essential to build responsive and dynamic PHP applications.
Importance of Conditional Statements
Think of conditionals as forks in the road. Your program evaluates certain conditions, and based on the outcome, follows one path or another. Without conditionals, all your code would run linearly—there would be no decisions, no branching, no intelligent behavior.
Some common use cases:
- Checking if a user is logged in
- Deciding discount logic based on user roles
- Validating form input
- Triggering different logic based on API request methods
The if
Statement in PHP
The if
statement is the most basic form of conditional logic. It evaluates an expression and executes the code block if the condition is true.
Syntax:
if (condition) {
// Code to execute if condition is true
}
Example:
$age = 18;
if ($age >= 18) {
echo "You are eligible to vote.";
}
In the above example, the message will be printed only if $age
is 18 or greater.
The if...else
Statement
Sometimes, you want to execute one block of code if the condition is true and another if it’s false. That’s where else
comes in.
Syntax:
if (condition) {
// Code if true
} else {
// Code if false
}
Example:
$loggedIn = false;
if ($loggedIn) {
echo "Welcome back!";
} else {
echo "Please log in.";
}
The if...elseif...else
Ladder
When you have multiple conditions to check, use the elseif
keyword.
Syntax:
if (condition1) {
// Code if condition1 is true
} elseif (condition2) {
// Code if condition2 is true
} else {
// Code if none are true
}
Example:
$score = 75;
if ($score >= 90) {
echo "Grade: A";
} elseif ($score >= 75) {
echo "Grade: B";
} elseif ($score >= 60) {
echo "Grade: C";
} else {
echo "Grade: F";
}
This is a classic example of grading logic based on score ranges.
Nested if
Statements
Sometimes, you need to check a condition inside another condition. This is where nested if
statements are useful.
Example:
$role = "admin";
$active = true;
if ($role == "admin") {
if ($active) {
echo "Admin access granted.";
} else {
echo "Admin account is inactive.";
}
}
While nesting can be powerful, overuse may lead to deeply indented and hard-to-read code. Use with caution.
The switch
Statement in PHP
The switch
statement offers a cleaner alternative to long if...elseif...else
ladders when checking a single variable against multiple possible values.
Syntax:
switch (expression) {
case value1:
// Code to execute
break;
case value2:
// Code to execute
break;
default:
// Code if no match
}
Example:
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week!";
break;
case "Friday":
echo "Almost weekend!";
break;
case "Sunday":
echo "Rest day.";
break;
default:
echo "Just another day.";
}
The break
statement is crucial. Without it, PHP will execute the next case block even if a match is found—this is known as fall-through.
The match
Expression (PHP 8+)
Introduced in PHP 8, match
is a more expressive and strict alternative to switch
.
Features:
- Strict type comparison (===)
- No fall-through
- Returns a value
Syntax:
$result = match($status) {
'draft' => 'This is a draft.',
'published' => 'Published successfully.',
'archived' => 'Archived content.',
default => 'Unknown status',
};
Advantages over switch
:
- Cleaner syntax
- Returns value (can be assigned to a variable)
- Type-safe comparison
Best Practices for Using Conditional Statements
- Use indentation and brackets for readability, even for single-line blocks.
- Avoid deep nesting by breaking logic into functions when possible.
- Use
match
when comparing against multiple known values (PHP 8+). - Combine conditions logically using
&&
,||
, and!
instead of nestedif
s. - Comment complex conditionals to explain intent.
Common Pitfalls to Avoid
- Omitting
break
inswitch
cases (leads to fall-through bugs) - Using
=
instead of==
inside conditions (accidental assignment)if ($user = true) { // wrong if ($user == true) { // correct
- Overusing nested
if
without clear structure - Not handling all possible cases in a
switch
ormatch
Real-World Examples
Login Validation
if ($_POST['email'] && $_POST['password']) {
if (validateUser($_POST['email'], $_POST['password'])) {
echo "Login successful!";
} else {
echo "Invalid credentials.";
}
} else {
echo "Please fill in all fields.";
}
Access Control
$role = "editor";
switch ($role) {
case "admin":
echo "Full access";
break;
case "editor":
echo "Edit access";
break;
case "viewer":
echo "Read-only access";
break;
default:
echo "No access";
}
Summary
In this module, you’ve mastered the backbone of logic control in PHP: conditional statements. You now understand:
- How to use
if
,else
, andelseif
- The syntax and power of the
switch
statement - The benefits of PHP 8’s
match
expression - Best practices and common mistakes
Conditionals are not just technical syntax—they’re the decision-makers of your program. They determine how your app responds to users, handles data, and reacts to different scenarios.
In the next module, we’ll take your logical skills even further by exploring loops in PHP—including for
, while
, and foreach
.