为什么OR运算符即使满足条件之一也总是返回?

问题描述

即使$ type满足条件之一,为什么OR运算符总是返回? 从逻辑上讲,它应该检查$ type是否为ONE或两个。如果不为1,则应恢复。

function my_function(){     
        if( $type !== 'one' || $type !== 'two' ) return;
        ?>

当我使用AND运算符时,它会检查是否满足条件之一? 从逻辑上讲,它不应该是一个,也不能是两个,否则不会返回。

function my_function(){     
        if( $type !== 'one' && $type !== 'two' ) return;
        ?>

这让我很震惊))请有人向我解释一下...

解决方法

将OR运算符与否定测试一起使用可能会非常令人困惑。在您的OR示例中,测试将始终为真。您说的是“如果该值不是1或不是2”。由于永远不能同时为一和二,因此表达式始终为假。

这里需要AND运算符。它说“如果不是一个也不是两个”。因此,只有值不为一或二时,它才为真。