Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么OR运算符即使满足其中一个条件也总是返回?_Php_Or Operator_And Operator - Fatal编程技术网

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

Php 为什么OR运算符即使满足其中一个条件也总是返回?,php,or-operator,and-operator,Php,Or Operator,And Operator,为什么即使$type满足其中一个条件,OR运算符也总是返回? 从逻辑上讲,它应该检查$type是否不是1或不是2。如果不是这样,它应该恢复 function my_function(){ if( $type !== 'one' || $type !== 'two' ) return; ?> 当我使用and运算符时,它会检查其中一个条件是否满足? 从逻辑上讲,不返回不应该是1,也不应该是2 function my_function(){

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

function my_function(){     
        if( $type !== 'one' || $type !== 'two' ) return;
        ?>
当我使用and运算符时,它会检查其中一个条件是否满足? 从逻辑上讲,不返回不应该是1,也不应该是2

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

这让我大吃一惊)请有人给我解释一下…

使用OR运算符进行阴性测试可能会非常混乱。在您的OR示例中,测试将始终为真。您的意思是“如果值不是1或不是2”。因为它不可能同时是一和二,所以这个表达总是错误的


AND运算符就是您想要的。上面写着“如果不是一个也不是两个”。因此,只有当值不是1或2时才是真的。

第一个if条件永远不会为假。你的变量必须有一些奇怪的量子叠加,它同时是“一”和“二”。专业提示-不要使用双重否定逻辑,它会使您的代码难以理解。