@SHNM

Ошибка syntax 'foreach'?

Здравствуйте! Подскажите пожалуйста, как использовать цикл в switch? Показывает ошибку синтаксис foreach
public static function act_page($data = []) {
  if (isset($_GET['act'])) {
    switch ($_GET['act']) {
      foreach($data as $key => $value) {
        case $key:
          self::$path .= '/act/'.$key;
          self::display_page($value['title']);
          exit;
          break;
      }
      default:
      self::display_error(404);
      break;
    }
  }
  return null;
}
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
функция целиком - ад. я бы выкинул всё это оопэ из картона, все эти статики, публики, селфи - и шарашил обычным спагетти. Не будет вызывать настолько сильный когнитивный диссонанс.

Но если уж пытаться спасти этот ужас,
public static function act_page($data, $key) {
      if ($key && isset($data[$key])) {
          self::$path .= '/act/'.$key;
          self::display_page($data[$key]['title']);
      } else {
          self::display_error(404);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
t-alexashka
@t-alexashka
Сразу пишу legacy код
У вас структура switch нарушена. case внутри foreach не может быть в данном случае. Вы как будто в текстурах застряли :)
Ответ написан
Ваш ответ на вопрос

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

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