Switch Statement in PHP : Tutorial


When we have multiple if-else statements (if-else ladder) with conditions on the same variable, we can replace it with Switch Statement

Syntax :
switch ($variable) {

    case 0:
       statements;
        break;
    case 1:
        statements;
        break;
    case 2:
        statements;
        break;
    ...
    ...
    ...
    
    case n :
        statements;
        break;    
}
Example:
<?php

$day = 4;

//if-else ladder


if($day == 1)
	echo "Its a Monday!<br>";

elseif ($day == 2)
	echo "Its a Tuesday!<br>";

elseif ($day == 3)
	echo "Its a Wednesday!<br>";

elseif ($day == 4)
	echo "Its a Thursday!<br>";

elseif ($day == 5)
	echo "Its a Friday!<br>";

elseif ($day == 6)
	echo "Its a Saturday!<br>";

else {
	echo "Its a Sunday!!<br>";
	echo "Its a Holiday!!<br>";
}

//Above if-else ladder converted to a switch statements

switch (day) {
    case 1:
        echo "Its a Monday!<br>";
        break;
    case 2:
        echo "Its a Tuesday!<br>";
        break;
    case 3:
        echo "Its a Wednesday!<br>";
        break;
    case 4:
        echo "Its a Thursday!<br>";
        break;
    case 5:
        echo "Its a Friday!<br>";
        break;
    case 6:
        echo "Its a Saturday!<br>";
        break;
    case 7:
        echo "Its a Sunday!!<br>";
        echo "Its a Holiday!!<br>";
        break;
}

?>
Output

Its a Thursday! Its a Thursday!
In the above example, we have an if-else ladder that echo's day of the week depending on the value of variable $day, as this if-else ladder conditions are based on value of same varaible we can use Switch case as an alternative.

Switch case with Default
When none of the switch-cases are met, default case is executed,

Syntax :
switch ($variable) {

    case 0:
       statements;
        break;
    case 1:
        statements;
        break;
    case 2:
        statements;
        break;
    ...
    ...
    ...
    case n:
        statements;
        break;    
    default:
      statements;
      
}
Continue statement can be used within switch,it acts similar to break.
If we have a switch inside a loop and wish to continue to the next iteration of the outer loop, use continue.
Example:
<?php

$day = 9;



switch (day) {
    case 1:
        echo "Its a Monday!<br>";
        break;
    case 2:
        echo "Its a Tuesday!<br>";
        break;
    case 3:
        echo "Its a Wednesday!<br>";
        break;
    case 4:
        echo "Its a Thursday!<br>";
        break;
    case 5:
        echo "Its a Friday!<br>";
        break;
    case 6:
        echo "Its a Saturday!<br>";
        break;
    case 7:
        echo "Its a Sunday!!<br>";
        echo "Its a Holiday!!<br>";
        break;
    default:
       echo "Invalid input!";
}

?>
Output

Invalid input!