Conditional Structures

Loading concept...

PHP Conditional Structures: The Traffic Light of Your Code 🚦

Imagine you’re at a crossroad. You look at the traffic light. If it’s green, you walk. If it’s red, you stop. That’s exactly what conditional structures do in PHP! They help your code make decisions.


🎯 The Big Idea

Your PHP code is like a smart robot. It needs to decide what to do based on different situations. Conditional structures are the decision-making tools that tell your robot which path to take.

Our Everyday Metaphor: Think of conditionals as a vending machine. You press a button, and the machine checks: “Did they press A1? Give chips. Did they press B2? Give soda.” It makes choices based on what you do!


1. if-else Statements: The Basic Yes or No

What Is It?

An if-else statement is like asking a simple question: “Is this true?”

  • If YES → do this thing
  • If NO → do that other thing

🎪 The Story

Little Maya wants ice cream. Her mom says: “If you finish your homework, you get ice cream. Otherwise, no ice cream.”

$homeworkDone = true;

if ($homeworkDone) {
    echo "Yay! Ice cream time!";
} else {
    echo "Finish homework first!";
}

Output: Yay! Ice cream time!

How It Works

graph TD A[Check Condition] --> B{Is it TRUE?} B -->|Yes| C[Run IF block] B -->|No| D[Run ELSE block] C --> E[Continue] D --> E

🔑 Key Points

  • The condition goes inside ( )
  • Code to run goes inside { }
  • else is optional - use it only when needed

Simple Example: Age Check

$age = 10;

if ($age >= 13) {
    echo "You can watch this movie!";
} else {
    echo "Sorry, too young.";
}

2. elseif and Nested Conditions: Multiple Choices

What Is It?

Sometimes life isn’t just yes or no. What if there are many options? That’s where elseif comes in!

🎪 The Story

A teacher gives grades. She doesn’t just say pass or fail. She says: “90+ is A, 80+ is B, 70+ is C, otherwise it’s F.”

$score = 85;

if ($score >= 90) {
    echo "Grade: A - Excellent!";
} elseif ($score >= 80) {
    echo "Grade: B - Great job!";
} elseif ($score >= 70) {
    echo "Grade: C - Good effort!";
} else {
    echo "Grade: F - Keep trying!";
}

Output: Grade: B - Great job!

Flow of elseif

graph TD A[Start] --> B{Score >= 90?} B -->|Yes| C[Grade A] B -->|No| D{Score >= 80?} D -->|Yes| E[Grade B] D -->|No| F{Score >= 70?} F -->|Yes| G[Grade C] F -->|No| H[Grade F]

🪆 Nested Conditions: Conditions Inside Conditions

Sometimes you need to check one thing, then check another thing inside it. Like Russian nesting dolls!

$hasTicket = true;
$age = 8;

if ($hasTicket) {
    if ($age >= 12) {
        echo "Welcome to the ride!";
    } else {
        echo "Too young for this ride.";
    }
} else {
    echo "Please buy a ticket first.";
}

Output: Too young for this ride.

💡 Pro Tip

Don’t nest too deep! If you have more than 2-3 levels, consider rewriting your logic.


3. switch Statement: The Menu Selector

What Is It?

When you have one variable that could be many different values, switch is cleaner than writing lots of elseif.

Think of it like a restaurant menu. You pick ONE dish, and the kitchen makes that specific dish.

🎪 The Story

A robot asks: “What day is it?” Based on the answer, it tells you what to do.

$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week!";
        break;
    case "Friday":
        echo "Almost weekend!";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend! Relax!";
        break;
    default:
        echo "Regular weekday.";
}

Output: Start of the week!

🔑 Key Points

Part What It Does
switch($var) Which variable to check
case "value": If it matches this value
break; Stop! Don’t check more cases
default: If nothing else matches

Why Use break?

Without break, PHP falls through to the next case!

$fruit = "apple";

switch ($fruit) {
    case "apple":
        echo "Red ";
        // No break - falls through!
    case "banana":
        echo "Yellow ";
        break;
    default:
        echo "Unknown";
}

Output: Red Yellow (Both run because no break!)

When to Use switch vs if-else

Use switch when… Use if-else when…
Checking ONE variable Checking different conditions
Comparing exact values Using ranges (>, <, >=)
Many possible values Few options (2-3)

4. match Expression: The Modern Upgrade (PHP 8+)

What Is It?

match is like switch but smarter and safer. It was added in PHP 8.

Think of it as an upgraded vending machine that:

  • Gives you back the result directly
  • Checks more strictly
  • Never falls through by accident

🎪 The Story

$status = 200;

$message = match($status) {
    200 => "OK - Everything is fine!",
    404 => "Not Found - Page missing!",
    500 => "Server Error - Oops!",
    default => "Unknown status",
};

echo $message;

Output: OK - Everything is fine!

match vs switch: Side by Side

// SWITCH way (old)
switch ($grade) {
    case "A":
        $result = "Excellent";
        break;
    case "B":
        $result = "Good";
        break;
    default:
        $result = "Unknown";
}

// MATCH way (new - cleaner!)
$result = match($grade) {
    "A" => "Excellent",
    "B" => "Good",
    default => "Unknown",
};

🔑 Key Differences

Feature switch match
Returns value No Yes!
Needs break Yes No
Comparison Loose (==) Strict (===)
Fall-through Can happen Never

Multiple Values in match

$day = "Saturday";

$type = match($day) {
    "Monday", "Tuesday", "Wednesday",
    "Thursday", "Friday" => "Weekday",
    "Saturday", "Sunday" => "Weekend",
};

echo $type; // Output: Weekend

⚠️ Watch Out!

match uses strict comparison (===). This means types must match too!

$num = "1"; // String, not number!

// This will throw an error!
$result = match($num) {
    1 => "One",  // Looking for integer
    2 => "Two",
    default => "Other",
};
// Output: "Other" because "1" !== 1

🎮 Quick Decision Guide

graph TD A[Need to make a decision?] --> B{How many options?} B -->|2 options| C[Use if-else] B -->|3+ exact values| D{PHP 8+?} B -->|Ranges or complex| E[Use if-elseif-else] D -->|Yes| F[Use match] D -->|No| G[Use switch]

🌟 Remember These Rules

  1. if-else = Simple yes/no questions
  2. elseif = Multiple choices in order
  3. Nested conditions = Questions inside questions
  4. switch = One variable, many exact values
  5. match = Modern, safer switch with returns

🎯 Real-World Example: User Login

Let’s combine everything we learned!

$username = "player1";
$password = "secret123";
$role = "admin";

// First check: Are credentials correct?
if ($username === "player1" &&
    $password === "secret123") {

    // Second check: What's their role?
    $access = match($role) {
        "admin" => "Full access granted!",
        "editor" => "Can edit content.",
        "viewer" => "Read-only access.",
        default => "Basic access.",
    };

    echo "Welcome! " . $access;

} else {
    echo "Wrong username or password!";
}

Output: Welcome! Full access granted!


🚀 You Did It!

Now you understand how PHP makes decisions:

  • if-else for simple choices
  • elseif for multiple paths
  • Nested conditions for complex logic
  • switch for menu-style selections
  • match for modern, clean code

Your code can now think and choose just like you do every day. Go build something amazing! 🎉

Loading story...

No Story Available

This concept doesn't have a story yet.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Interactive Content

This concept doesn't have interactive content yet.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Cheatsheet Available

This concept doesn't have a cheatsheet yet.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Quiz Available

This concept doesn't have a quiz yet.