我对这个简单的if
语句有疑问:
$type = $_GET['type'];
if ($type !== 1 || $type !== 2) {
header('Location: payment.php');
exit;
}
只允许输入 1 和 2 ,但......
最后一个例子没问题,但我不知道为什么它在第一个和第二个例子中重定向。
答案 0 :(得分:4)
!==
是身份运营商;所以它也会检查类型。
但$ _GET,$ _POST,...数组中的数据是字符串。所以你还需要检查字符串:
if ($type !== "1" && $type !== "2") /* ... */
同时检查$a !== $x && $a !== $y
是否始终为真(如果$x !== $y
)。所以在这里使用||
。
答案 1 :(得分:1)
试试这个:
if (!($type == 1 || $type == 2)) {
header('Location: payment.php');
exit;
}
这可以用Anything other than type is 1 or 2
答案 2 :(得分:0)
如果你的意思是只有值为1和2的类型应重定向你应该尝试这个代码
if ($type === 1 || $type === 2) {
header('Location: payment.php');
exit;
}