Эли4ка
31.01.2018 - 16:44
Здравствуйте, дорогие форумчане. Есть скрипт:
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
31.01.2018 - 16:49
Эли4каТак срабатывает только первое условие, второе уже не отрабатывает
if(isset($_GET['url'])){
unset($_GET['act']);
echo $_GET['url'];
}
if(isset($_GET['act'])){
unset($_GET['url']);
echo $_GET['act'];
}
Ну и при unset, тоже проверить нужно на isset переменную, а то ошибка
Эли4ка
31.01.2018 - 16:53
Цитата |
Так срабатывает только первое условие, второе уже не отрабатывает |
Не совсем поняла эту фразу
VeRTak
31.01.2018 - 16:55
Эли4ка
Словами перевожу, если существует $_GET['url'] условие верное(true), else уже у вас не сработает. Элементарно же
Эли4ка
31.01.2018 - 16:56
Но а если оба GET'а есть, как мне при одном одно обработать, а при другом другое?
VeRTak
31.01.2018 - 16:57
Эли4ка
Я же показал выше, if и еще if, без else
Эли4ка
31.01.2018 - 16:58
Хорошо, а если мне нужно сделать так:
если первый параметр есть или его нет-отработать первое условие. Если второе есть-сделать второе.
уберите unset из кода. зачем он вам тогда?
VeRTak
31.01.2018 - 17:02
Цитата (Эли4ка @ 31.01.2018 - 16:58) |
если первый параметр есть или его нет-отработать первое условие. |
Так зачем тут вообще условие? В любом случае в независимости что вернет условия, правду или лож, участок кода будет отработан. Или я что-то не так понял
Эли4ка
31.01.2018 - 17:04
depp, допустим параметр GET отвечает за отображение страницы. А параметр POST за добавление данных.
То есть при любом GET-нам нужно отрендерить страницу, даже если есть POST.
VeRTak
31.01.2018 - 17:06
Цитата (Эли4ка @ 31.01.2018 - 17:04) |
То есть при любом GET-нам нужно отрендерить страницу |
И зачем тут условие?
Эли4ка
31.01.2018 - 17:10
VeRTak, разве оно тут не нужно?
Есть $_GET['url] и $_GET['act']
Один за одно отвечает. Другой за другое.
Что будет если уберем условие при передаче двух сразу гетов?
Эли4ка
31.01.2018 - 17:12
test.php?url=&act=34
Что будет выполнено тут?
test.php?url[][][]=&act[]=34
А тут например, если усложнить задание
VeRTak
31.01.2018 - 17:13
Эли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
31.01.2018 - 17:15
Цитата (Эли4ка @ 31.01.2018 - 17:12) |
test.php?url=&act=34 |
Проверяйте еще на empty
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.