**(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语句,当if和elseif的值都不为true时执行