Могу ли я использовать логическое «или» в случае с предложением оператора PHP?

Можно ли использовать «или» или «и» в случае с переключателем? Вот что мне нужно:

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; }