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.