我怎样才能简化这个逻辑

发布于 2024-08-25 02:28:50 字数 155 浏览 7 评论 0原文

我在简化这个条件语句逻辑时遇到困难。有没有更生动的写法?

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

I'm having trouble simplifying this conditional statements logic. Is there a more effervescent way of writing this?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

债姬 2024-09-01 02:28:50
if ($x) return true;
return false;

根据您的声明,只有当 $x 为 true 时,您才会返回 true,因此这是您真正需要检查的唯一声明,对吗?变量 $a$y 完全不相关。

编辑:与以下内容相同:

return (bool) $x;
if ($x) return true;
return false;

According to your statement, you only return true if $x is true, therefore that is the only statement you really need to check for, correct? The variables $a and $y are completely irrelevant.

Edit: Same thing as:

return (bool) $x;
土豪我们做朋友吧 2024-09-01 02:28:50

如果仅在 $x 为 true 时返回 true,则其余代码无关紧要。因此,

return (bool) $x;

编辑:哎呀... bool 是一个强制转换,而不是一个函数。

If you only return true if $x is true, then the rest of the code is irrelevant. Thus,

return (bool) $x;

EDIT: Oops... bool is a cast, not a function.

似梦非梦 2024-09-01 02:28:50

外层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 才能继续。但如果右侧分支中的 $xtrue,则整个条件已为 true

因此,唯一需要为 true 的变量是 $x

return (bool) $x;

The condition of the outer if, ($x || $a) && ($x || $y), is equivalent to $x || ($a && $y). When we conjunct that with the condition that $x must also be true (inner if), we get ($x || ($a && $y)) && $x. And that is equivalent to $x && $x || $x && $a && $y which can be reduced to $x || $x && $a && $y. In both OR branches $x must be true to proceed. But if the $x in the right branch is true, the whole condition is already true.

So the only variable that needs to be true is $x:

return (bool) $x;
乖乖哒 2024-09-01 02:28:50

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

return $x

Like several people have already said, only $x matters in your code. I guess the shortest possible code is:

return $x
云归处 2024-09-01 02:28:50
if($x && ($a || $y))
     return true;

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

return false;
—━☆沉默づ 2024-09-01 02:28:50
if(($x && $a && $y)
{
    return true;
}
return false;

编辑:它只是return $x;

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

EDIT : it is simply return $x;

月竹挽风 2024-09-01 02:28:50

您可以将其写为一行表达式...

return $x;

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

You could write this as a one line expression...

return $x;

regardless of $a and $y, $x has to be true to return true

瀟灑尐姊 2024-09-01 02:28:50
   if($x){
          return true;
   }

   return false;

编辑:

return $x
   if($x){
          return true;
   }

   return false;

?

Edit:

return $x
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文