@Evgenij_nechujveter

Почему не работает условие?

1bdd2686a206458fa5a456981ce60a14.png
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что вы в каждом case сравниваете $day с результатом вычисления формулы.
Ваша запись эквивалентна следующей:
if ($day == ($day == 1 && $day <= 5)) { }
elseif ($day == ($day === 6 && $day === 7)) {}
elseif ($day == ($day == 0 && $day > 7)) {}

Это уже не говоря о кривости самих условий.
($day == 1 && $day <= 5) выполняется только если $day == 1.
($day === 6 && $day === 7) не выполняется никогда.
($day == 0 && $day > 7) также не выполняется никогда.
Если хотите использовать именно switch, то так:
switch ($day) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
    echo ... ;
    break;
  case 6:
  case 7:
    echo ... ;
    break;
  default:
    echo ... ;
    break;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
devspec
@devspec
Помогло? Отметь решением
$day === 6 || $day === 7
а также
$day <= 0 || $day > 7
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы