Можно ли использовать «или» или «и» в случае с переключателем? Вот что мне нужно:
case 4 || 5: echo "Hilo"; break;
Нет, но вы можете это сделать:
case 4: case 5: echo "Hilo"; break;
См. Руководство по PHP .
EDIT: О случае И: переключатель только проверяет одну переменную, поэтому это не сработает, в этом случае вы можете сделать это:
switch ($a) { case 4: if ($b == 5) { echo "Hilo"; } break; // Other cases here }
Как вы достигаете этого эффективно:
CASE 4 : CASE 5 : echo "Hilo"; break;
Это называется оператором switch с провалом. Из Википедии :
«В языках C и аналогично построенных языках недостаток ключевых слов прерывания, чтобы вызвать провал выполнения программы из одного блока в следующий, широко используется. Например, если n = 2, оператор четвертого случая будет давать соответствие элементу управления переменная. Следующая строка выводит «n – четное число». Выполнение продолжается через следующие 3 оператора case и следующую строку, которая выводит «n – простое число». Линия прерывания после этого приводит к тому, что оператор switch Если пользователь вводит более одной цифры, выполняется блок по умолчанию, создавая сообщение об ошибке ».
Нет, я считаю, что это будет оцениваться как (4 || 5), что всегда верно, но вы могли бы сказать:
case 4: case 5: // do something break;
вы можете просто складывать случаи:
switch($something) { case 4: case 5: //do something break; }
switch($a) { case 4 || 5: echo 'working'; break; }