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