PHP中的逻辑错误或if条件错误

时间:2013-07-11 17:11:44

标签: php if-statement logical-or

我有文件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部分。

任何人都可以提出错误的原因吗?

1 个答案:

答案 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逻辑运算符的完整参考:

http://php.net/manual/en/language.operators.logical.php