Php ';如果';情况出错

Php ';如果';情况出错,php,Php,在这里,我正在检查条件if$type=“register”,然后它不应该像下面那样进入条件if,但它出错了 这里我传递的是$type=“register”,但它将进入if状态并回显1 if((isset($type)) && (($type != "register") || ($type != "document_approved") || ($type != "document_rejection"))) { echo 1; } else { echo 2;

在这里,我正在检查条件if
$type=“register”
,然后它不应该像下面那样进入条件if,但它出错了

这里我传递的是
$type=“register”
,但它将进入
if
状态并回显
1

if((isset($type)) && (($type != "register") || ($type != "document_approved") || ($type != "document_rejection")))
{
    echo 1;
}
else
{
    echo 2;
}
但如果我检查如下条件,则它工作正常,并发出回声
2

if((isset($type)) && ($type != "register"))
{
    echo 1;
}
else
{
    echo 2;
}
我做错什么了吗?谢谢。

逻辑如下

False(等于寄存器)

True(不等于已批准的文档)

这张支票不会再多了

看看你在用什么!在数组($value、[register、document\u approved等])中,逻辑如下

False(等于寄存器)

True(不等于已批准的文档)

这张支票不会再多了


看看你在用什么!在数组中($value、[register、document\u approved等])

如果条件包含

(($type != "register") || ($type != "document_approved") || ($type != "document_rejection"))
当至少有一个条件匹配时,这将计算为true


由于
$type='register'
,所以
$type!=“document_approved”(文档已批准)
评估为true,如果条件包含,则打印1

(($type != "register") || ($type != "document_approved") || ($type != "document_rejection"))
当至少有一个条件匹配时,这将计算为true

由于
$type='register'
,所以
$type!=“document_approved”(文档已批准)
评估为true,并打印1

if((isset($type)){
    if(($type != "register") || ($type != "document_approved") || ($type != "document_rejection"))
         {
           echo 1;
        }else{
           echo 2;
            }
   }
试着这样做:

if((isset($type)){
    if(($type != "register") || ($type != "document_approved") || ($type != "document_rejection"))
         {
           echo 1;
        }else{
           echo 2;
            }
   }
试着这样,

if((isset($type))
 {
   if(($type != "register") && ($type != "document_approved") && ($type != "document_rejection"))
         {
           echo 1;
         }
         else
         {
           echo 2;
         }
   }
试着这样,

if((isset($type))
 {
   if(($type != "register") && ($type != "document_approved") && ($type != "document_rejection"))
         {
           echo 1;
         }
         else
         {
           echo 2;
         }
   }

好的,这个条件
($type!=“document_approved”)
是真的,使得整个条件都是真的,所以…将
|
更改为
&
您正在检查的值是不是“x”还是“y”。这永远是事实。不可能两者都有,你什么意思?您的情况是
a&(b|c|d)
c
是真的(因为
$type
是“注册”的,所以它不是“批准的文件”),而
d
也是真的,
使条件
为真&&(false | true | true)
,也就是说
为真&&true
,这是
为真的
@FedericoklezCulloca:oh,我明白你的意思了。谢谢。这个条件
($type!=“document_approved”)
为真,使整个条件为真,因此…将
|
更改为
&&
您正在检查的值是不是“x”还是“y”。这永远是事实。不可能两者都有,你什么意思?您的情况是
a&(b|c|d)
c
是真的(因为
$type
是“注册”的,所以它不是“批准的文件”),而
d
也是真的,
使条件
为真&&(false | true | true)
,也就是说
为真&&true
,这是
为真的
@FedericoklezCulloca:oh,我明白你的意思了。谢谢。这将与OP的版本具有完全相同的效果。这将与OP的版本具有完全相同的效果。