PHP ||或运算符使用!= not等于运算符

时间:2015-12-15 19:41:34

标签: php if-statement conditional

我有一个问题。最近我正在使用IF条件。假设我的变量$var等于'something'

所以这是代码:

if ($var != 'something' || $var != 'that') {
    // Do a dance
} else {
    // Cook something
}

但这对我不起作用。但如果我这样使用它:

if ($var == 'something' || $var == 'that') {
    // Cook something
} else {
    // Do a dance
}

那么为什么我的IF条件与!=不起作用?

只是想知道差异所以我将来可以正确使用它:)

2 个答案:

答案 0 :(得分:2)

布尔代数:

&& | T F    || | T F
---|----    ---|----
T  | T F     T | T T
F  | F F     F | T F

你有:

if    (($var1 != 'this') || ($var2 != 'that')) {

在逻辑上等同于

if (! (($var == 'this') && ($var2 == 'that')) )

如果您的条件的 EITHER 评估为true,那么整个事情的评估结果为true。唯一可以评估为false的方法是BOTH变量是否等于那些值。

答案 1 :(得分:1)

它没有用,因为你使用了错误的逻辑运算符。截至De Morgan's LawsA OR B的否定为not-A AND not-B