切换语句和isset

时间:2009-06-21 22:46:27

标签: php switch-statement

几个月以前,我的网站充满了通知错误,所以我现在正在尝试修复代码。我想有一些PHP更新。我不是那么聪明的PHP所以:

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

case "delete":
delete();
break;

}

当我添加isset时,这不起作用。

你不能在函数中使用isset吗? 我真的不知道所以我问你那些了解这些事情的人。

欢呼声

5 个答案:

答案 0 :(得分:6)

isset返回一个bool(参见isset manual page)。你的情况不会起作用,因为'deleted'不是一个有效的布尔值(我认为它的结果是真的,但仍然是。)

你应该检查它是否先设置,然后切换:

if(isset($_GET['action')) {
  switch ( $_GET['action']) ) {
    case "delete":
      delete();
      break;
  }
} else {
  ...
}

答案 1 :(得分:3)

这是因为isset返回truefalse,而不是字符串(这是case语句所期望的)。

答案 2 :(得分:1)

isset()返回bool(true或false)。你想在切换之前调用isset()。例如:

if (isset($_GET['action']))
{
  switch($_GET['action'])
  {
    ...
  }
}

答案 3 :(得分:1)

在进入交换机之前,您需要检查isset()。

答案 4 :(得分:0)

  

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";
}
         

}