Can someone suggest me how can I replace the below code?
How do I rewrite the code in order to avoid the repetition of the block case 3:{code block A; break;}?
switch(i) {
case 1: {code block A; break;}
case 2: {code block b; break;}
case 3: {code block A; break;}
default: {code block default; break;}
}
How can I have combined code for case 1 and case 3?
Advertisement
Answer
This format is shown in the PHP docs:
switch (i) {
case 1:
case 3:
code block A;
break;
case 2:
code block B;
break;
default:
code block default;
break;
}
EDIT 04/19/2021:
With the release of PHP8 and the new match function, it is often a better solution to use match instead of switch.
For the example above, the equivalent with match would be :
$matchResult = match($i) {
1, 3 => // code block A
2 => // code block B
default => // code block default
}
The match statement is shorter, doesn’t require breaks and returns a value so you don’t have to assign a value multiple times.
Moreover, match will act like it was doing a === instead of a ==. This will probably be subject to discussion but it is what it is.