How to use a switch case 'or' in PHP How to use a switch case 'or' in PHP php php

How to use a switch case 'or' in PHP


switch ($value){    case 1:    case 2:        echo "the value is either 1 or 2.";    break;}

This is called "falling through" the case block. The term exists in most languages implementing a switch statement.


If you must use || with switch then you can try :

$v = 1;switch (true) {    case ($v == 1 || $v == 2):        echo 'the value is either 1 or 2';        break;}

If not your preferred solution would have been

switch($v) {    case 1:    case 2:        echo "the value is either 1 or 2";        break;}

The issue is that both method is not efficient when dealing with large cases ... imagine 1 to 100 this would work perfectly

$r1 = range(1, 100);$r2 = range(100, 200);$v = 76;switch (true) {    case in_array($v, $r1) :        echo 'the value is in range 1 to 100';        break;    case in_array($v, $r2) :        echo 'the value is in range 100 to 200';        break;}


I won't repost the other answers because they're all correct, but I'll just add that you can't use switch for more "complicated" statements, eg: to test if a value is "greater than 3", "between 4 and 6", etc. If you need to do something like that, stick to using if statements, or if there's a particularly strong need for switch then it's possible to use it back to front:

switch (true) {    case ($value > 3) :        // value is greater than 3    break;    case ($value >= 4 && $value <= 6) :        // value is between 4 and 6    break;}

but as I said, I'd personally use an if statement there.