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

时间:2015-08-17 10:26:14

标签: php

**(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;
    }
}

但我相信他们可能会有更好的方法来做到这一点。  任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

如果你的意思是你想要一个紧凑的条件语句,如下面的代码(使用$ e == false),只需添加"而不是"运算符是"!"。

<?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 语句,如果 if elseif 都没有评估为 true