-1

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

任何人都可以提出什么错误?

4

1 回答 1

6

让我们分解一下:

if (!isset($_GET["cat"]) || !isset($_GET["new_field"])) {

这意味着,如果 cat 未设置,或者 new_field 未设置,则条件为真。

如果你传递了 cat,但你没有传递 new_field,那么条件仍然为真。如果您希望它为假,则需要同时发送 cat 和 new_field。

&& 要求所有条件都必须为真才能返回真,否则返回假。

|| 要求任何给定条件必须为真才能返回真,否则返回假。

您可以在此处找到 PHP 逻辑运算符的完整参考:

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

于 2013-07-11T17:15:57.633 回答