Switch Statement
Tutorials

A switch statement is a control structure used to look at a single value and compare it against multiple possible outcomes. It is used as an alternative to an if / elseif / else chain when you are testing the exact same variable over and over again for different values.

The switch statement takes a variable or expression inside the parentheses ().

Inside the curly braces { ... }, you define various case blocks representing the values you want to check against.

<?php
switch (variable) {
    case 'value1':
        // Code to run if variable equals value1
        break;
    case 'value2':
        // Code to run if variable equals value2
        break;
    default:
    // Fallback code if no cases match
}

The Three Key Keywords:

  • case - The specific value you are checking for. If the variable matches this value, the code following the colon : runs.

  • break - Tells PHP to stop executing code inside the structure and exit the switch statement immediately.

  • default - Acts exactly like an else block. It requires no matching value and runs only if none of the previous case blocks were a match.

Implementation Example

Consider an application checking a user's permission level:

<?php
$role = "Editor";
switch ($role) {
    case "Admin":
        echo "Welcome to the administrator dashboard.";
        break;

    case "Editor":
        echo "Welcome! You can edit articles.";
        break;

    default:
        echo "Welcome, regular user.";
}

How the Logic Flows:

The Evaluation: PHP evaluates the variable $role.

*The Case Check: It compares "Editor" to the first case ("Admin"). It is not a match, so PHP skips to the next case.

The Match: It checks the second case ("Editor"). It matches, so PHP runs echo "Welcome! You can edit articles.";.

The Exit: PHP hits the break; statement. This tells it to jump outside of the closing curly brace } and continue running the rest of the script, ignoring the default block entirely.

The Importance of break

If you forget to add a break; at the end of a case block, PHP will exhibit a behavior known as fall-through.

It will continue executing the code in the next case block automatically, even if that next case value doesn't match your variable!

<?php
$role = "Admin";

switch ($role) {
case "Admin":
echo "Welcome to the administrator dashboard. ";
// Missing break!
case "Editor":
echo "Welcome! You can edit articles.";
break;
}

// Outputs: Welcome to the administrator dashboard. Welcome! You can edit articles.
To Top