[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: интересное поведение условий
Страницы: 1, 2, 3
Эли4ка
Здравствуйте, дорогие форумчане. Есть скрипт:

if($_GET['url']){
unset($_GET['act']);
echo $_GET['url'];
}
else if($_GET['act']){
unset($_GET['url']);
echo $_GET['act'];
}

Есть я передам такую строку test.php?url=1&act=do почему выведет 1, а не 1do?
Никак не могу понять этого, помогите
VeRTak
Эли4ка

Так срабатывает только первое условие, второе уже не отрабатывает


if(isset($_GET['url'])){
unset($_GET['act']);
echo $_GET['url'];
}
if(isset($_GET['act'])){
unset($_GET['url']);
echo $_GET['act'];
}


Ну и при unset, тоже проверить нужно на isset переменную, а то ошибка
Эли4ка
Цитата
Так срабатывает только первое условие, второе уже не отрабатывает

Не совсем поняла эту фразу
VeRTak
Эли4ка

Словами перевожу, если существует $_GET['url'] условие верное(true), else уже у вас не сработает. Элементарно же
Эли4ка
Но а если оба GET'а есть, как мне при одном одно обработать, а при другом другое?
VeRTak
Эли4ка

Я же показал выше, if и еще if, без else
Эли4ка
Хорошо, а если мне нужно сделать так:
если первый параметр есть или его нет-отработать первое условие. Если второе есть-сделать второе.
depp
уберите unset из кода. зачем он вам тогда?
VeRTak
Цитата (Эли4ка @ 31.01.2018 - 16:58)
если первый параметр есть или его нет-отработать первое условие.


Так зачем тут вообще условие? В любом случае в независимости что вернет условия, правду или лож, участок кода будет отработан. Или я что-то не так понял smile.gif
Эли4ка
depp, допустим параметр GET отвечает за отображение страницы. А параметр POST за добавление данных.
То есть при любом GET-нам нужно отрендерить страницу, даже если есть POST.
VeRTak
Цитата (Эли4ка @ 31.01.2018 - 17:04)
То есть при любом GET-нам нужно отрендерить страницу


И зачем тут условие?
Эли4ка
VeRTak, разве оно тут не нужно?
Есть $_GET['url] и $_GET['act']
Один за одно отвечает. Другой за другое.
Что будет если уберем условие при передаче двух сразу гетов?
Эли4ка
test.php?url=&act=34
Что будет выполнено тут?
test.php?url[][][]=&act[]=34
А тут например, если усложнить задание
VeRTak
Эли4ка

В общем я не понимаю что вам нужно, как то всегда разные вопросы.

Догадываюсь только примерно что нужно


if(isset($_GET['url']) && isset($_GET['act'])) echo $_GET['url'].$_GET['act'];
elseif(isset($_GET['url'])) echo $_GET['url'];
elseif(isset($_GET['act'])) echo $_GET['act'];
VeRTak
Цитата (Эли4ка @ 31.01.2018 - 17:12)
test.php?url=&act=34


Проверяйте еще на empty
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.