我有文件category.php,它将GET['cat']
参数传递给process_edit.php
process_edit.php里面有这个代码..
if (!isset($_GET["cat"]) || !isset($_GET["new_field"])) {
header ("location: category.php");
exit;
}
else {
if (! ctype_digit($_GET["cat"])) {
header("location: category.php");
exit;
}
}
但是,当我通过“猫”时,它会进入第一个IF语句,而不是进入ELSE
部分。
任何人都可以提出错误的原因吗?
答案 0 :(得分:6)
让我们分解一下:
if (!isset($_GET["cat"]) || !isset($_GET["new_field"])) {
这意味着,如果未设置cat,或未设置OR new_field,则条件为真。
如果你传递了cat,但是你没有传递new_field,那么条件仍然是真的。如果你想要它是假的,你需要发送两只猫和new_field。
&&要求所有条件必须为true才能返回true,否则返回false。
||要求任何给定条件必须为true才能返回true,否则返回false。
您可以在此处找到PHP逻辑运算符的完整参考: