PHP switch statement
Sometimes we want to compare the same variable with different values, and that’s where the PHP switch statement comes in.
In the following example, we compare the variable $i with the values 0, 1, 2.
switch exampleswitch ($i) { case 0: echo "i es 0"; break; case 1: echo "i es 1"; break; case 2: echo "i es 2"; break; }
See that case indicates the case, for example case 0: indicates that if $i is 0, the code that follows will be executed.
break
As you can see, within switch, break is used, this is to prevent the code from continuing to execute.
If a break is not used, the statement will continue to execute the next case as well.
Switch without break$i=1; switch ($i) { case 0: echo "i es 0"; break; case 1: echo "i es 1"; case 2: echo "i es 2"; break; }
i es 1i es 2
default
In PHP, within switch, in addition to the case cases, we also have default, which always goes at the end of the switch. The code for default will be the code that will be executed by default when a value is not found that corresponds to a case.
Switch using default$variable = "valor"; switch ($variable) { case "opcion1": echo "Estás en la opción 1"; break; case "opcion2": echo "Estás en la opción 2"; break; default: echo "No estás en ninguna de las opciones anteriores"; break; }
Comparison in Switch
Something we need to keep in mind is that when we use case x:, x doesn’t have to be a value per se, but it can also be an expression. For example, suppose we are comparing ages:
Comparison in switch$age = 45; switch (true) { case ($age > 60): echo "Edad mayor a 60 años"; break; case ($age > 50): echo "Edad entre 51 y 60 años"; break; case ($age > 40): echo "Edad entre 41 y 50 años"; break; case ($age > 30): echo "Edad entre 31 y 40 años"; break; case ($age > 20): echo "Edad entre 21 y 30 años"; break; default: echo "Edad menor o igual a 20 años"; break; }
When should we use Switch in PHP instead of if?
Switch can be useful in cases where we have to make a large number of comparisons. I would say that if you have more than 4 comparisons, you should start using switch.
In cases of large comparisons, switch can be faster than if, and this is another feature you should consider.
Finally, you should consider readability. Keep in mind that another programmer may have to read your code.