За последние 24 часа нас посетили 54339 программистов и 1621 робот. Сейчас ищут 1195 программистов ...

не работают case

Тема в разделе "PHP для новичков", создана пользователем Joker2705, 17 янв 2015.

  1. Joker2705

    Joker2705 Активный пользователь

    С нами с:
    8 окт 2013
    Сообщения:
    37
    Симпатии:
    0
    когда пишу "switch($_GET['mod'])", то все работает, но выдает предупреждение "Notice: Undefined index: mod in", а если пишу "switch(isset($_GET['mod']))", тогда предупреждений нет, но перестают работать кейсы. Подскажите, в чем тут дело?
     
  2. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    а код можно?
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    проблема в том что не существует индекса мод в массиве _гет. это же очевидно. а проверка установлен ли индекс мод в массиве _гет возвращает фолс и свич начинает искать либо кейс фолс либо дефолт. поэтому типа перестает работать. а на самом деле работает как надо.
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Мужик, в словарь закинуть эти слова не пробовал?))
    В первом случае, ты не проверяешь существует ли переменная $_GET['mod'] а во вотром случае вы проверяете существование переменной в операторе switch. Думаю, это не совсем правильно.
     
  5. Joker2705

    Joker2705 Активный пользователь

    С нами с:
    8 окт 2013
    Сообщения:
    37
    Симпатии:
    0
    Я все понимаю, работает правильно, как надо, но раздражает это предупреждение. может кто знает как с этим бороться, что бы работало все правильно и не выдавала предупреждения. Ну и конечно не отключать вывод ошибок,
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    $mod = isset($_GET['mod'])?$_GET['mod']:null;
    case ($mod)

    if(!isset($_GET['mod'])){ $_GET['mod'] = null; }
    case ($_GET['mod'])

    выбирай. это называется алгоритм. и это то с чем у тебя проблемы.
     
  7. Joker2705

    Joker2705 Активный пользователь

    С нами с:
    8 окт 2013
    Сообщения:
    37
    Симпатии:
    0
    Отлично))) Все заработало и ничего надоедливого не пишет))) Спасибо)))) Век живи, век учись. А проблемы я со временем решу)))
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ой, там конечно не кейс а свич. ну ты понял. не буду редактировать. оставим заминированным
     
  9. Joker2705

    Joker2705 Активный пользователь

    С нами с:
    8 окт 2013
    Сообщения:
    37
    Симпатии:
    0
    да, да. Понял, проверил, все работает, спасибо)))
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В чем соль
    понял, или выбрал второй вариант, кстати?
     
  11. Joker2705

    Joker2705 Активный пользователь

    С нами с:
    8 окт 2013
    Сообщения:
    37
    Симпатии:
    0
    выбрал второй вариант и написал вместо "case ($_GET['mod'])" вот так "switch($_GET['mod'])"