简单的IF声明问题

时间:2010-04-28 17:21:20

标签: programming-languages if-statement

我如何简单地使用以下if语句?

if ( isset(var1) & isset(var2) ) {

    if ( (var1 != something1) || (var2 != something2) ) {

        // ... code ...
    }

}

似乎这样可以简化为只有一个IF语句,但我不确定我是否使用AND或OR

8 个答案:

答案 0 :(得分:2)

Boolean varsAreSets = isset(var1) & isset(var2); // or some other name that indicates what this is doing
Boolean someMeaningfulName = (var1 != something1) || (var2 != something2); // would suggest a meaningful name but don't know what this is accomplishing

if ( varsAreSets && someMeaningfulName ) { 
        // ... code ... 
} 

这使代码具有可读性,可以帮助您和阅读代码的人了解这些检查实际执行的操作。

答案 1 :(得分:1)

if (isset(var1) && ((var1 != something1) || (var1 != something2)))
    // ... code ...
}

您将使用and,因为如果两者 if-statements为// ... code ...,您只能访问true部分。

答案 2 :(得分:1)

你可以这样做:

if(isset(var1) && isset(var2) && ( (var1 != something1) || (var1 != something2) ) ){
    //..code
}   

作为一般例子:

if( cond1 && cond2 ) {
 if( cond3 || cond4) {
   // ...code..
 }
}

只有当cond1cond2都为true并且cond3cond3中的任何一个都为true时,才会执行代码。< / p>

答案 3 :(得分:1)

这是你的计算机解释布尔逻辑的命令的问题:

以下列条件为例:

答:错误 B:是的

如果您要写if (A && B)计算机实际执行的操作,请考虑:

  

是真的吗?否。

     

嗯, B不能为真,因为A不是真的。因此,这种说法是错误的。 [计算机忽略其余的逻辑]

因此,当你评估语句isset(var1) && ( (var1 != something1) || (var1 != something2) )时,它首先检查isset(var1),如果这是假的,那么它会跳过其余的条件,就像你的double-if语句一样。

答案 4 :(得分:0)

if ( isset(var1) && isset(var2) && ( (var1 != something1) || (var2 != something2) ) ) {

    // ... code ...
}

答案 5 :(得分:0)

if (isset(var1) && isset(var2) && ((var1 != something1) || (var2 != something2)))
{
  // ... code ...
}

答案 6 :(得分:0)

另一种选择:

if (isset(var1) && isset(var2)
&& !(var1 == something1 && var2 == something2)) {
   ...

答案 7 :(得分:0)

我认为如果未设置var1或var2,上面大多数具有1 IF的示例可能会发出错误

(isset($var1) && isset($var2)) ? ($var1!='something1' && $var2!='something2') ? $go=TRUE : $go=FALSE : $go = FALSE;

if ($go){
    echo 'hello';
}