1. php
  2. /basics
  3. /switch

Introduction to PHP switch

Definition

The PHP switch statement is used to perform different actions based on different conditions. It is used to test a variable or expression against multiple cases, and execute the code block associated with the first matching case. If no case is matched, the code block associated with the default case (if present) will be executed.

The basic syntax of the switch statement is as follows:

switch (expression) {
    case value1:
        // code to be executed if expression == value1
        break;
    case value2:
        // code to be executed if expression == value2
        break;
    ...
    default:
        // code to be executed if no case is matched
        break;
}

For example:

$num = 2;

switch ($num) {
    case 1:
        echo "The number is 1";
        break;
    case 2:
        echo "The number is 2";
        break;
    case 3:
        echo "The number is 3";
        break;
    default:
        echo "The number is not 1, 2 or 3";
        break;
}

In this example, the variable $num is tested against each case. Since the value of $num is 2, the code block associated with case 2 will be executed and the output will be "The number is 2".

It's important to note that the switch statement uses a strict comparison, meaning that the data type of the expression and the case value must be the same.

Also, the use of break statement is mandatory, it's used to break out of the switch statement after a case has been executed, if break is not used the execution continues with the next case.

Examples

<?php

$day = "Tuesday";

switch ($day) {
    case "Monday":
        echo "Today is Monday.";
        break;
    case "Tuesday":
        echo "Today is Tuesday.";
        break;
    case "Wednesday":
        echo "Today is Wednesday.";
        break;
    case "Thursday":
        echo "Today is Thursday.";
        break;
    case "Friday":
        echo "Today is Friday.";
        break;
    default:
        echo "Today is the weekend.";
        break;
}

?>

In this example, the variable $day is being tested against each case. Since the value of $day is "Tuesday", the code block associated with case "Tuesday" will be executed and the output will be "Today is Tuesday."

It's also possible to use multiple case statements with the same code block, for example:

switch ($day) {
    case "Monday":
    case "Tuesday":
    case "Wednesday":
    case "Thursday":
    case "Friday":
        echo "Today is a weekday.";
        break;
    default:
        echo "Today is the weekend.";
        break;
}

In this example, the code block associated with case "Monday" , "Tuesday", "Wednesday", "Thursday" and "Friday" will be executed and the output will be "Today is a weekday."

Best Practices

  1. Use meaningful case labels to improve code readability and make it easier to understand the intended behavior.

  2. Use the switch statement only when the number of cases is relatively small and it makes the code more readable.

  3. Avoid using large blocks of code in each case statement, instead use functions to keep the code organized and maintainable.

  4. Always use the break statement to break out of the switch statement after a case has been executed.

  5. Always include a default case, even if it is empty, to handle unexpected values.

  6. Use the strict comparison in the switch statement, meaning that the data type of the expression and the case value must be the same.

  7. If you have multiple cases that should execute the same code, use fall-through instead of duplicating the code.

  8. Make sure that the switch statement is covering all possible cases and not leaving any gaps in the execution.

  9. Use the switch statement with variables that can have a limited number of values, like days of the week or months of the year.

  10. The switch statement should be used to handle simple expressions, avoid using complex expressions in the switch statement.