PHP:NOT Equal(!=)运算符的多个条件未按预期工作

时间:2013-04-27 07:09:07

标签: php if-statement conditional-operator

我正在编写以下代码,其中我想使用多个php if conditions多个非运算符(示例如下)。

但是当我执行php code之后,它总是返回true(括号中的平均内容总是在执行),甚至条件都是假的。

我想问下面的代码有什么问题,是否有使用多个!= operator in php conditions的特定语法或规则?我很惊讶地发现,如果我使用!= operator代替== operator来使用以下代码,那么它的工作正常。

if( $ext!="exe" || $ext!="html" ||  $ext!="htm"  ||  $ext!="js" ||  $ext!="iso" ||  $ext!="zip"  ||  $ext!="rar" )
{ // ececk extension
    echo $ext."extension";

}
else{
    echo "not match";   
}

等待您的回复。抱歉我的英语不好。

2 个答案:

答案 0 :(得分:8)

更好的代码:

$allowed = array('jpeg','png');

if(in_array($ext,$allowed)){
  echo "Correct";
}
else {
 echo "Wrong";
}

答案 1 :(得分:1)

用户XOR运算符而不是OR作为或检查所有条件需要相同,而如果所有人都是相同的则XOR返回true:

  if(!($ext!=="exe") xor ($ext=="html")){ //Add more conditions
    //each condition in new brackets & ! sign in start before all conditions

 { // ececk extension
                echo $ext."extension";

            }
            else{
                echo "not match";   
            }

希望它会有所帮助