我该如何简化这种逻辑

时间:2010-03-11 06:47:44

标签: php conditional logic if-statement

我在简化这种条件语句逻辑时遇到了麻烦。是否有更热情的写作方式?

if(($x || $a) && ($x || $y))
{
   if($x){
          return true;
   }
}
return false;

8 个答案:

答案 0 :(得分:6)

if ($x) return true;
return false;

根据你的陈述,如果$x为真,你只返回true,因此这是你真正需要检查的唯一陈述,对吗?变量$a$y完全无关。

编辑:同样的事情:

return (bool) $x;

答案 1 :(得分:4)

如果只有$ x为true才返回true,那么剩下的代码就无关紧要了。因此,

return (bool) $x;

编辑:哎呀...布尔是一个演员,而不是一个函数。

答案 2 :(得分:2)

if($x || $a) && ($x || $y)的条件等同于$x || ($a && $y)。当我们将$x也必须 true (内部if)的条件合并时,我们得到($x || ($a && $y)) && $x。这相当于$x && $x || $x && $a && $y,可以缩减为$x || $x && $a && $y。在两个OR分支$x必须 true 才能继续。但如果右侧分支中的$x true ,则整个条件已经 true

所以唯一需要 true 的变量是$x

return (bool) $x;

答案 3 :(得分:1)

就像几个人已经说过的那样,只有$ x在你的代码中很重要。我想最短的代码是:

return $x

答案 4 :(得分:0)

   if($x){
          return true;
   }

   return false;

编辑:

return $x

答案 5 :(得分:0)

if($x && ($a || $y))
     return true;

return false;

答案 6 :(得分:0)

if(($x && $a && $y)
{
    return true;
}
return false;

编辑:只是return $x;

答案 7 :(得分:0)

你可以把它写成一行表达式......

return $x;

无论$ a和$ y,$ x必须为true才能返回true