Welcome to my series on every PHP keyword and its usage. Today’s items: switch, case, default and endswitch.

A switch is used to handle situations where you have a lot of different conditional branches for a single variable. Instead of using a large number of elseif statements, it’s often cleaner to use a switch.

Cases in a switch statement are denoted with the case keyword, and typically completed using the break keyword. However, return or exit statements negate the need to explicitly break the case.

A final special case is the default case, which works the same way as the else clause in an if statement; a condition that is only triggered if none of the other cases are met.

In PHP, a switch has two forms, one using curly braces, and the other using the endswitch keyword.

Usage

Curly braces

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php
$colour = "red";

switch($colour)
{
	case "red":
		$flower = "roses";
	break;
	
	case "blue":
		$flower = "violets";
	break;
	
	default:
		$flower = "unknown";
	break;
}

endswitch

Note: This usage seems to be aimed mostly at templates, so I would encourage you not to use it outside of templating. If you’re looking to avoid spaghetti code entirely, you may want to look into Twig, which is a popular templating engine that encourages you to separate behaviour from presentation.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php
$colour = "red";

switch($colour):
	case "red":
		$flower = "roses";
	break;
	
	case "blue":
		$flower = "violets";
	break;
	
	default:
		$flower = "unknown";
	break;
endswitch;