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

时间:2011-11-17 05:27:09

标签: if-statement logic compare

<?php

$param = 'c';

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

?>

上面的if语句无法正常工作,因为无论if的值如何,$param总是会评估为TRUE。

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

1 个答案:

答案 0 :(得分:1)

根据De Morgan's laws

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

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