分解条件语句**(isset($a) &&(($ b,,$c) | $d || $e))**


decompose conditional statement **(isset($a) && (($b && $c) || $d || $e))**

**(isset($a) && (($b && $c) || $d || $e))**  i want to refactor above conditional statement. 

但我不知道如何继续。
我做了一些工作,首先我把所有的条件语句最小化到变量的格式。
我把整个陈述放入if子句中,我从那个陈述中得到期望为真。我已经尝试将其分解为像

这样的函数
function check($a) {
    if (!isset($a)) {
        return false;
    }
    if ($e == false) {
        return true;
    }
    if ($b && $c) {
        return true;
    }
    if ($d) {
        return true;
    }
}

,但我相信他们可能有更好的方法来做到这一点。有人能帮我一下吗?

如果你想要一个紧凑的条件语句,就像下面的代码(带有$e == false)一样,只需添加一个"not"操作符,即"!"。

<?php
 function foo(mix $a, bool $b, bool $c, bool $d, bool $e){
  return isset($a) && ($b && $c) || $d || !$e);
 }
?>

或者反过来…

<?php
 function foo(mix $a, bool $b, bool $c, bool $d, bool $e){
  if(isset($a)){
    if($b && $c){
      return true;
    } elseif($d){
      return true;
    } elseif(!$e){
      return true;
    }
  }
  return false;
 }
?>

还有一个else语句,当ifelseif的值都不为true时执行