如何减少PHP中if-else语句的数量?

Ste*_*ven 7 php if-statement readability nested

我发现有很多if-else语句,特别是嵌套if else语句,这些语句使我的代码可读性降低.如何减少PHP中if else语句的数量?

我的提示如下:1.在合适时使用switch语句; 2.在可行时使用exit()语句; 3.在可行时使用三元语句;

是否有其他提示可以减少if else语句,尤其是嵌套的if-else语句?

Max*_*Max 20

尽可能使用"早期返回"以减少嵌套深度.尝试使用布尔表达式求值.

例:

function foo($param)
{
    $ret = false;

    if(userIsLoggedIn()) {
        if(is_array($param)) {
            if($param['count'] > 0) {
                $ret = true;
            }
            else {
                $ret = false;
            }
        }        
    }

    return $ret;
}
Run Code Online (Sandbox Code Playgroud)

你可以像这样重写:

function foo($param) 
{
    if(!userIsLoggedIn()) return false;
    if(!is_array($param)) return false;
    return $param['count'] > 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 另外我个人只会使用`return userIsLoggedIn()&& is_array($ param)&& $ param ['count']> 0;`这里.它简洁明了. (5认同)

Jef*_*tte 18

将代码重构为较小的工作单元.条件逻辑过多是代码嗅觉,通常表明您的函数需要重构.


iWa*_*ife 9

有一种官方的学术方法来重构和简化许多if条件,称为卡诺映射.

它需要多个测试条件,并尝试帮助创建if涵盖所有必需案例的简化语句.

您可以在这里从维基中了解更多相关信息.