当控制结构中需要明确的“else”时?

时间:2015-12-17 07:23:05

标签: php algorithm

应该使用什么? 这个,没有其他:

function($condition) {
    if($condition) {
        return true;
    }
    return false;
}

或者, 其他:

function($condition) {
    if($condition) {
        return true;
    } else {
        return false;
    }
}

有哪些潜在的缺点?

注意:我理解这个例子的正确解决方案是

function($condition) {
    return (boolean)$condition;
}

5 个答案:

答案 0 :(得分:0)

我喜欢这种方法:

function($condition) {
    $retValue = false;
    if($condition) {
        $retValue = true;
    }
    return $retValue;
}

通过这种方式,您可以知道此函数将返回的位置(始终在最后),这有助于以后的分析。您设置了默认值,只有在条件合适时才更改它。

答案 1 :(得分:0)

使用else可以提高可读性。但是,这两个函数的作用相同,函数由return函数终止。我觉得使用else更安全如果在某些情况下你可以忘记使用return函数,然后再进一步返回false。

答案 2 :(得分:0)

我也会使用其他,原因如下:

  1. 您的代码更具可读性
  2. 在复杂的代码中,就像在其他if / else&#39中使用if / else一样,调试会更容易。

答案 3 :(得分:0)

在某些情况下,可以通过设置" else"来提高可读性。在旁边。以下两个例子是等效的。第二个产生的代码较少,但只有当我们在该块中没有复杂计算的情况下返回值时才能生成代码,但同样,我们可以利用函数使其可用。

function($a, $b) {
    if($a) {
        if($a > $b) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

function($a, $b) {
    if($a) {
        if($a > $b) {
            return true;
        }
    }
    return false;
}

注意:如果没有谈到具有更复杂条件假设的一般情况,那么这个应该折叠为:

function($a, $b) {
    return ($a and $a > $b);
}

答案 4 :(得分:-2)

在第一个中,将返回true和false,因为当if语句结束时,它将继续执行下一个操作,返回false。在第二个中,将根据条件返回一个真或假。第一个的缺点是你得到true和false返回,这可能会混淆一个只需要一个参数的函数,而是接收两个参数。这假设您将其包含在更大的函数中。我不知道为什么你会想要使用第一个。希望这有帮助!