if(!isset($_GET['set']) && (($_GET['set'] != 'on') || ($_GET['set'] != 'off'))){
header('Location: http://google.com');
exit;
}
我想检查的是设置是否未设置且值未打开或关闭。这是正确的还是有其他办法吗?
答案 0 :(得分:6)
不,你只需要这个:
if(!isset($_GET['set'])){
header('Location: http://google.com');
exit;
}
答案 1 :(得分:3)
您换了&&
和||
:
if (!isset($_GET['set']) || (($_GET['set'] != 'on') && ($_GET['set'] != 'off'))){
header('Location: http://google.com');
exit;
}
这些错误并不容易发现。它可以帮助分解问题:
$isSet = isset($_GET['set']);
$isOn = $isSet && $_GET['set'] === 'on';
$isOff = $isSet && $_GET['set'] === 'off';
$isOnOff = $isOn || $isOff;
if (!$isOnOff) {
...
}
答案 2 :(得分:1)
您无需在!isset()
之后查看。如果未设置$_GET['set']
,则不会有任何值。
if(!isset($_GET['set'])) {
header('Location: http://google.com');
exit;
}
答案 3 :(得分:0)
我认为最好定义您的变量以避免Notice: Undefined variable:
,因为您仍然希望确保$_GET['set']
必须是on
或off
;
$_GET['set'] = isset($_GET['set']) ? $_GET['set'] : null ;
if(!($_GET['set'] == "on" || $_GET['set'] == "off")){
header('Location: http://google.com');
exit;
}
答案 4 :(得分:0)
试试这个
if(!isset($_GET['set']))?header('Location: http://google.com'): exit;