if statement php


if statement php

我的if语句出了什么问题?

$sMasterDID = 85487;
    if($sMasterDID != "78681" OR $sMasterDID != "85487"){
      echo "if";
    }else{
      echo "else";
    }

这应该呼应:"其他"。正确的而不是!!

如果我这样做,If语句有效:

$sMasterDID = 85487;
    if($sMasterDID != "85487"){
      echo "if";
    }else{
      echo "else";
    }

我还尝试了从数字中删除引号的代码(不起作用)

    if($sMasterDID != 78681 OR $sMasterDID != 85487)

您必须查看每个语句的评估结果。

$sMasterDID = 85487;
$sMasterDID != "78681" //true
$sMasterDID != "85487" //false

在语句中使用时,由于true OR falsetrue,因此if(true OR false)计算为if(true),因此执行echo "if";

您使用OR错误。CCD_ 7将始终评估为CCD_。请改用AND

$sMasterDID = 85487;
if ($sMasterDID != "78681" OR $sMasterDID != "85487")
    {
    echo "if";
    }
else
    {
    echo "else";
    }

让我们了解一下你的工作方式

第一个子句:"$sMasterDID"等于true
第二个子句"$sMasterDID"等于false

你必须这样想
如果第一个子句为真或假,则执行第一个子句,否则执行第二个子句;但是当您检查$sMasterDID是否与85487不同,因为之前"$sMasterDID=85487",所以为false。因此,它将执行第二个语句;但是当你放第一个条款的时候询问"$sMasterDID"与85487是否不同,这是真的

在IF子句中有这样的结果:

IF(TRUE)OR(FALSE),结果总是TRUE,所以我们从不运行第二个子句。

明白了吗?

请参阅布尔代数以获得更好的理解。


FALSE+FALSE=FALSE
FALSE+TRUE=TRUE
TRUE+FALSE=TRUE
TRUE+TRUE=TRUE

记住布尔代数。

or运算符不是独占运算符或运算符。如果你的If 中有一个值

$sMasterDID != "78681"

如果计算结果为true,则整个语句的计算结果为true。