-2
if(!isset($_GET['set']) && (($_GET['set'] != 'on') || ($_GET['set'] != 'off'))){
    header('Location: http://google.com');
    exit;
}

我要检查的是 set 是否未设置且 value 未打开或关闭。这是正确的还是有其他方法?

4

5 回答 5

6

不,你只需要这个:

if(!isset($_GET['set'])){
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:38:23.840 回答
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) {
    ...
}
于 2012-10-04T15:39:30.787 回答
1

您无需再检查!isset()。如果$_GET['set']未设置,它将没有任何值。

if(!isset($_GET['set'])) {
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:41:03.590 回答
0

我认为最好定义你的变量来避免Notice: Undefined variable: ,因为你仍然想确保 $_GET['set']必须是onor off;

$_GET['set'] = isset($_GET['set']) ? $_GET['set'] : null ;

if(!($_GET['set'] == "on" || $_GET['set'] == "off")){
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:41:14.040 回答
0

试试这个

if(!isset($_GET['set']))?header('Location: http://google.com'): exit;
于 2012-10-04T15:47:43.267 回答