Looking at the PHP documentation, it is not clear how to add multiple values for the same case in a switch construct. It seems that you should be able to do
case ("whatever" || "something"):
//Do something;
break;
But, you can’t. I tried, and it didn’t work. Fortunately, after much searching, I found a way to do it; and it’s not near as difficult as I was making it.
Let’s look at this code:
switch (value)
{
case 1:
echo "Value was 1";
break;
case 2:
case 3:
echo "Value was 2 or 3";
break;
case 4:
echo "Value was 4";
break;
default:
echo "Value was not 1-4";
break;
}
It works. If the value is either 2 or 3 it echoes out the same string. This takes advantage of not putting in the break; statement after the case 2: line.
The next step is to allow a range, and I’m still looking for that… If you have any thoughts, stick it in a comment :-)
I’ve discovered the syntax which makes the multiple-construct work:
You simply omit the parenthesis, so that the case line reads eg:
case 1 || 2:
echo “foobar”;
and so on.
It seems that the range allows something like this:
case 1-3:
echo “foobar”;
The OR construct seems to work for me, but the range doesn’t.
After working around with the same question, I think I give some kind of explanations, a little different from the provious ones.
switch doesn’t act differently with strings.
This work fine:
case “A”:
case “B”:
case “C”:
case “D”:
$L = “ABCD”;
break;
case “E”:
case “F”:
case “G”:
case “H”:
$L = “EFGH”;
break;
article very good
Multiple cases within parenthesis as described by Thierry worked fine for me , Thanks for the information helped a lot
For a range, use the two statements construct with > and 0:
case $daysold<31:
'This is between 0 and 31 days old'
break;
}