PHP elseif语句;另外,或压缩成一个?

时间:2014-09-12 22:48:35

标签: php if-statement

我基本上想知道通过单独的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更具可读性,但它是否也更快(或者更喜欢)?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

你也可以这样做:

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

但要回答你的问题:

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

答案 2 :(得分:0)

不,它们功能相同。