PHP | |或运算符是否使用!=不等于运算符

PHP | |或运算符是否使用!=不等于运算符,php,if-statement,conditional,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 { //

我有个问题。最近我患了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条件与!=不起作用


我只是想知道两者之间的区别,以便将来能正确使用:)

它不起作用,因为您使用了错误的逻辑运算符。根据,A或B的否定是布尔代数:

&& | 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')) )

如果您的条件中有一个的计算结果为真,则整个情况的计算结果为真。唯一可能计算为false的方法是两个变量是否都等于这些值。

取决于您要查找的内容
或和?当$var1和$var2不起作用时,它们是什么?您可能正在寻找
&
,否定时很容易混淆。正如所述,我们不知道您的变量是什么,也不知道您要匹配什么。试试这两种口味,编辑我的问题,这样你们可以更好地理解它。。。