我的 IF 语句有问题,尽管这是不正确的,但它始终为 TRUE。我正在使用 OR 运算符,因为我想在 IF 语句中捕获两种可能的情况。

数组字符串 ad_status 是“1”,但使用下面的 -3 返回,我期望 IF 为 FALSE。如果我从 IF 中删除 OR 和第二个语句,则 IF 的结果是正确的。

我做错了什么?谢谢。

    if(($getadstatus['ad_status'] != "1" || $getadstatus['ad_status'] != "4"))
    {
        return -3;
        exit;
    }

额外的:
我想要做的是,如果 ad_status 不等于 1 或 4,则退出函数(此处未完整显示)。如果它等于 1 或 4 以外的任何其他值,则 IF 语句应返回 TRUE 并退出。
ad_status 可以是 0 到 4 之间的任何值。

最佳答案

您所说的是 not 1not 4 的任何值都应返回 true。

对于“1”,您会得到声明

if( 1 != 1 || 1 != 4)

这意味着
if( false || true )

这当然是真的。

你需要的是:
if(!($value == 1 || $value==4))

与 ( de Morgan's law ) 相同
if($value != 1 && $value != 4)

关于php - 或在 PHP IF 语句中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6321392/

10-12 14:17
查看更多