89 lines
1.9 KiB
Markdown
89 lines
1.9 KiB
Markdown
|
---
|
||
|
title: Switch
|
||
|
---
|
||
|
## Switch
|
||
|
In PHP, the `Switch` statement is very similar to the Javascript `Switch` statement (See the <a href="/javascript/switch-statements">Javascript Switch Guide</a> to compare and contrast). It allows rapid case testing with a lot of different possible conditions, the code is also more readable.
|
||
|
|
||
|
### Syntax
|
||
|
```php
|
||
|
<?php
|
||
|
// Switch Statement Example
|
||
|
switch ($i) {
|
||
|
case "free":
|
||
|
echo "i is free";
|
||
|
break;
|
||
|
case "code":
|
||
|
echo "i is code";
|
||
|
break;
|
||
|
case "camp":
|
||
|
echo "i is camp";
|
||
|
break;
|
||
|
default:
|
||
|
echo "i is freecodecamp";
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
### Break
|
||
|
The `break;` statement exits the switch and goes on to run the rest of the application's code. If you do not use the `break;` statement you may end up running mulitple cases and statements, sometimes this may be desired in which case you should not include the `break;` statement.
|
||
|
|
||
|
An example of this behavior can be seen below:
|
||
|
|
||
|
```
|
||
|
<?php
|
||
|
$j = 0
|
||
|
|
||
|
switch ($i) {
|
||
|
case '2':
|
||
|
$j++;
|
||
|
case '1':
|
||
|
$j++;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
```
|
||
|
|
||
|
If $i = 1, the value of $j would be:
|
||
|
|
||
|
```
|
||
|
1
|
||
|
```
|
||
|
|
||
|
If $i = 2, the value of $j would be:
|
||
|
|
||
|
```
|
||
|
2
|
||
|
```
|
||
|
|
||
|
While break can be omitted without causing fall-through in some instances (see below), it is generally best practice to include it for legibility and safety (see below):
|
||
|
|
||
|
```
|
||
|
<?php
|
||
|
switch ($i) {
|
||
|
case '1':
|
||
|
return 1;
|
||
|
case '2':
|
||
|
return 2;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
```
|
||
|
```
|
||
|
<?php
|
||
|
switch ($i) {
|
||
|
case '1':
|
||
|
return 1;
|
||
|
break;
|
||
|
case '2':
|
||
|
return 2;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
```
|
||
|
|
||
|
#### More Information:
|
||
|
* [php.net docs Switch](https://secure.php.net/manual/en/control-structures.switch.php")
|