Это мой сценарий switch-case:

switch ($_GET['page'])
{
case '?users':
.....
default: echo 'Welcome';

   }

Этот скрипт работает нормально, но когда я загружаю страницу в первый раз, он возвращает ошибку:

Notice: Undefined index: page in

Я знаю почему, потому что скрипт не знает, что такое значение. Как установить значение по умолчанию и избежать ошибки?

0
Klapsius 28 Авг 2014 в 12:06

2 ответа

Лучший ответ

Используйте isset(): EDITED

if(isset($_GET['page'])){
    switch ($_GET['page'])
    {
    case 'users':
    .....
    default: echo 'Welcome';

       }
}
2
Suchit kumar 28 Авг 2014 в 08:23

1a) Убедитесь, что индекс page существует

if( array_key_exists('page', $_GET) ) {

}

1b) Установите значение по умолчанию

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';

2) Ваше утверждение неверно

case 'users' :
 //...
break;

3) Весь код вместе

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';
  switch ($_GET['page']) {
      case 'users':
              //...
      break;
      default: 
              echo 'Welcome';
      break;
   }

Подсказки

  • Убедитесь, что вы break; блок case.
  • Всегда проверяйте наличие индексов перед тем, как использовать их вслепую
4
ʰᵈˑ 28 Авг 2014 в 08:10