Смена оператора и isset - PullRequest
0 голосов
/ 22 июня 2009

Так как пару месяцев назад мой веб-сайт был полон ошибок уведомления, поэтому я пытаюсь исправить код сейчас Я предполагаю, что было какое-то обновление php. Я не такой умный в php, поэтому:

switch ( (isset($_GET['action'])) ) {

case "delete":
delete();
break;

}

это не будет работать, когда я добавлю isset.

Разве вы не можете использовать isset внутри функции? Я действительно не знаю, поэтому я прошу вас, ребята, которые знают эти вещи.

ура

Ответы [ 5 ]

6 голосов
/ 22 июня 2009

isset возвращает логическое значение (см. Справочную страницу isset ). Ваш случай не сработает, так как значение «удалено» не является допустимым логическим значением (думаю, оно оценивается как истинное, но все же).

Вы должны проверить, установлен ли он первым, а затем переключиться:

if(isset($_GET['action')) {
  switch ( $_GET['action']) ) {
    case "delete":
      delete();
      break;
  }
} else {
  ...
}
3 голосов
/ 22 июня 2009

Это потому, что isset возвращает true или false, а не строку (это то, что ожидают ваши операторы case).

1 голос
/ 22 июня 2009

Вам нужно проверить isset () перед тем, как перейти в коммутатор.

1 голос
/ 22 июня 2009

isset () возвращает bool (true или false). Вы хотите вызвать isset () перед переключением. Пример:

if (isset($_GET['action']))
{
  switch($_GET['action'])
  {
    ...
  }
}
0 голосов
/ 15 апреля 2013

if (isset ($ _ GET ['action'])) {

  switch($_GET['action']){
        case "login":
        $nowfile = 'pages/login.php';
        break;
    }
if (file_exists($nowfile)){
    include($nowfile);
}else{
    echo "<b>Achtung:</b> Die file $nowfile existiert nicht";
}

}

...