2

希望你们会好起来的。我正在处理以下代码,其中我想使用多个 php if 条件与多个 not 运算符(示例如下),但是当我执行以下 php 代码时,它始终返回 true(始终执行括号中的平均内容)甚至没有条件为真。我想问一下下面的代码有什么问题。在 php 条件中使用多个 != 运算符是否有任何特定的语法或规则。我很惊讶地看到,如果我通过将 != 运算符替换为 == 运算符来使用以下代码,它工作正常。

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

}
else{
    echo "not match";   
}

等待您的友好答复。对不起我的英语不好。

4

2 回答 2

8

更好的代码:

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

if(in_array($ext,$allowed)){
  echo "Correct";
}
else {
 echo "Wrong";
}
于 2013-04-27T07:13:37.797 回答
0

用户 XOR 运算符而不是 OR as 或检查所有条件需要相同,而如果所有条件中的任何一个相同,则 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";   
            }

希望它会有所帮助

于 2016-12-25T20:32:19.040 回答