我有一个问题。最近我正在使用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条件与!=不起作用?
只是想知道差异所以我将来可以正确使用它:)
答案 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 Laws,A OR B
的否定为not-A AND not-B