If statement 带有OR和NOT运算符的IF语句不能按预期工作

If statement 带有OR和NOT运算符的IF语句不能按预期工作,if-statement,logic,compare,If Statement,Logic,Compare,上面的if语句不能按预期工作,因为无论if的值是多少,$param都将计算为TRUE 是否有另一种方法来构造将按预期工作的if语句(保持原始意图…即$param不等于a或b) 根据: 在您的情况下,您必须用&&操作符替换|。因此,在您的情况下,将“| |”更改为“&&&”将修复您的代码。德摩根定律最简单!谢谢我以前用过NOT(!),但我想我漏掉了括号。不管怎么说,你的答案是正确的! <?php $param = 'c'; if ($param != 'a' || $param != '

上面的
if
语句不能按预期工作,因为无论
if
的值是多少,
$param
都将计算为TRUE

是否有另一种方法来构造将按预期工作的
if
语句(保持原始意图…即
$param
不等于
a
b

根据:


在您的情况下,您必须用
&&
操作符替换
|

因此,在您的情况下,将“| |”更改为“&&&”将修复您的代码。德摩根定律最简单!谢谢我以前用过NOT(!),但我想我漏掉了括号。不管怎么说,你的答案是正确的!
<?php

$param = 'c';

if ($param != 'a' || $param != 'b') 
{
    echo 'Param != a OR b';
}else
{
    echo 'Param = a OR b';
}

?>
!(A OR B) = !A AND !B
!(A AND B) = !A OR !B