【问题标题】:IF statement with OR and NOT operators does not work as expected带有 OR 和 NOT 运算符的 IF 语句无法按预期工作
【发布时间】:2011-11-17 05:27:09
【问题描述】:
<?php

$param = 'c';

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

?>

上面的if 语句无法按预期工作,因为无论$param 的值如何,if 的计算结果总是为 TRUE。

是否有另一种方法来构造if 语句,该语句将按预期工作(保持初衷......即$param 不等于ab)?

【问题讨论】:

    标签: if-statement logic compare


    【解决方案1】:

    根据De Morgan's laws

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

    在您的情况下,您必须将 || 替换为 &amp;&amp; 运算符。

    【讨论】:

    • 所以,在你的情况下,改变“||”到 "&&" 将修复您的代码。
    • 最简单的德摩根定律!谢谢。我以前用过 NOT (!),但我想我省略了括号。无论如何,你的答案是正确的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 2017-03-07
    • 2019-06-19
    相关资源
    最近更新 更多