几个月以前,我的网站充满了通知错误,所以我现在正在尝试修复代码。我想有一些PHP更新。我不是那么聪明的PHP所以:
switch ( (isset($_GET['action'])) ) {
case "delete":
delete();
break;
}
当我添加isset时,这不起作用。
你不能在函数中使用isset吗? 我真的不知道所以我问你那些了解这些事情的人。
欢呼声
答案 0 :(得分:6)
isset返回一个bool(参见isset manual page)。你的情况不会起作用,因为'deleted'不是一个有效的布尔值(我认为它的结果是真的,但仍然是。)
你应该检查它是否先设置,然后切换:
if(isset($_GET['action')) {
switch ( $_GET['action']) ) {
case "delete":
delete();
break;
}
} else {
...
}
答案 1 :(得分:3)
这是因为isset
返回true
或false
,而不是字符串(这是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"; }
}