我如何简单地使用以下if语句?
if ( isset(var1) & isset(var2) ) {
if ( (var1 != something1) || (var2 != something2) ) {
// ... code ...
}
}
似乎这样可以简化为只有一个IF语句,但我不确定我是否使用AND或OR
答案 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..
}
}
只有当cond1
和cond2
都为true
并且cond3
或cond3
中的任何一个都为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';
}