Есть ли способ использовать оператор «ИЛИ» или эквивалент в переключателе PHP?
Например, что-то вроде этого:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
источник
Есть ли способ использовать оператор «ИЛИ» или эквивалент в переключателе PHP?
Например, что-то вроде этого:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
switch ($value)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
Это называется «проваливать» блок корпуса. Этот термин существует в большинстве языков, реализующих оператор switch.
Если вы должны использовать ||
с, switch
то вы можете попробовать:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
Если бы не ваше предпочтительное решение было бы
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
Проблема в том, что оба метода не эффективны при работе с большими делами ... представьте, 1
что 100
это будет работать отлично
$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;
}
Я не буду публиковать другие ответы, потому что они все правильные, но я просто добавлю, что вы не можете использовать switch для более «сложных» утверждений, например: для проверки, если значение «больше 3», « между 4 и 6 "и т. д. Если вам нужно сделать что-то подобное, придерживайтесь if
инструкций с использованием или, если есть особенно острая необходимость, switch
то вы можете использовать это назад:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
но, как я уже сказал, я бы лично использовал if
утверждение там.
switch()
, и когда я работаю на языке C-ish, мне очень не хватает егоSelect Case
, что на самом деле является кратким способом сказать: «есть большой блок if, else if, else-if ... here ".you can't use switch for more "complicated" statements
этоcan't
или этоshouldn't
? потому что в вашем примере выcan
switch (true)
не обычный случай использования переключателя.Попробуйте использовать следующие примеры в этой статье: http://phpswitch.com/
Возможные случаи переключения:
(я). Простое заявление о переключении
Положение переключателя удивительно и волшебно. Это часть языка, которая позволяет вам выбирать между различными опциями для значения и запускать разные фрагменты кода в зависимости от того, какое значение установлено.
Каждый возможный вариант задается регистром в операторе switch.
Пример :
(II). Разграничение блоков кода
Главное предостережение переключателя заключается в том, что каждый случай будет переходить к следующему, если вы не остановите его с перерывом. Если простой случай выше распространен на случай 5:
Пример :
(III). Использование Fallthrough для нескольких случаев
Поскольку switch будет продолжать выполнение кода до тех пор, пока не обнаружит перерыв, достаточно легко принять концепцию «сквозного» и запустить один и тот же код для более чем одного случая:
Пример :
случай 2:
(IV). Расширенное переключение: условия
Переключатель PHP не только позволяет вам включать значение определенной переменной: вы можете использовать любое выражение в качестве одного из случаев, если оно дает значение для случая использования. В качестве примера, вот простой валидатор, написанный с использованием switch:
Пример :
Я думаю, что это может помочь вам решить вашу проблему.
источник
Пытаться
источник
Я предлагаю вам пройти через http://php.net/manual/en/control-structures.switch.php (руководство)
объяснение
Как и в случае значения «что» для выполнения одного оператора, вы можете поместить его без перерыва, так как до или до тех пор, пока не будет найден разрыв, он продолжит выполнение кода, и если разрыв будет найден, он выйдет из случая переключателя.
источник
используйте этот код:
блок называется как 1, так и 2.
источник
источник
http://php.net/manual/en/control-structures.switch.php Пример
источник
Лучший способ может быть, если еще с запросом. Кроме того, это может быть проще и понятнее в использовании.
Пример:
Вместо использования функций, которые не будут хорошо работать с PHP, особенно если у вас есть PHP в HTML.
источник