Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вопрос по switch-case


Автор: Raiser 25.11.2006, 14:41
Я на странице использую такой код:
Код

switch ($_SERVER['QUERY_STRING']) {
case "param1": echo "Будет выведена страница № 1";break;
case "param2": echo "Будет выведена страница № 2";break;
case "": echo "Ничего не задано";
}

Вопрос
----
Скрипт с break:
Все выполняется правильно.
Скрипт без break:
Если передаю, предположим "_http://server.com/script.php?param1" - то выводится все (и с param1 и param2 и то, что в случае отсутствия параметра)
Почему так происходит? 
Вы можете посоветовать лучший способ, как определить, какой параметр был передан скрипту.

Автор: szz 25.11.2006, 14:47
   Если нету break, то выполнение "проваливается" в следующий case.
это особенность case, ах с лохматого 67-го года, когда был придуман С. Смирись.
Цитата

Или вы можете посоветовать лучший способ,

  Нет-нет это нормальный способ, только передавай параметр как переменную, например "page=param1" и пиши $_REQUEST['page'] вместо $_SERVER['QUERY_STRING'], а то потом захочешь передать еще какой-нибудь параметр.

Автор: Raiser 25.11.2006, 14:49
Понял, большое спасибо!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)