【问题标题】:PHP elseif statements; separate elseif, or compressed into one?PHP elseif 语句;单独的elseif,还是压缩成一个?
【发布时间】:2014-09-12 22:48:35
【问题描述】:

我基本上想知道通过单独的 elseif 语句枚举所有可能的条件或将它们组合成一个(除了可读性之外)之间是否有区别。

示例 1:

if($x == 0)
{
    (condition A)
}
elseif($x == 1)
{
    (condition A)
}
elseif($x == 2)
{
    (condition A)
}
else
{
    (condition B)
}

示例 2:

if($x == 0 || $x == 1 || $x == 2)
{
    (condition A)
}
else
{
    (condition B)
}

显然,示例 2 更具可读性,但它是否也更快(或者更受欢迎)?

【问题讨论】:

    标签: php if-statement


    【解决方案1】:

    我见过的最简洁的代码选项如下:

    switch($x) {
        case 0:
        case 1:
        case 2:
            (condition A)
            break;
        default:
            (condition B)
            break;
    }
    

    【讨论】:

    • 虽然这可行,但在处理整数范围时,最好在一个 if 语句中使用大于/小于符号。但是,如果您要比较字符串,这将是可行的方法。
    【解决方案2】:

    你也可以这样做:

    if ($x <= 2) {
        // Condition A
    } else {
        // Condition B
    }
    

    但要回答你的问题:

    在 2 个语句中,理论上第二个会更快,但这只是因为 PHP 会递归解析 1 个语句而不是 3 个单独的语句。但是,差异是如此微小,以至于您可能无法准确测量它。这意味着它们也可能是相同的。我在此文本上方的回答将比提供的任何一个示例都快,因为只有 1 个比较(不是 3 个)。但同样,差异很小,也可能是相同的。

    【讨论】:

      【解决方案3】:

      不,它们在功能上是等效的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        相关资源
        最近更新 更多