哪个会更快,哪个是正确的PHP内部if和整数?

时间:2011-10-30 21:33:54

标签: php if-statement while-loop

我在if then else if语句中有2个while循环,代码可以工作,一切都很好,但只是一个小问题。

拿我的第一个例子,我在while循环上声明它要执行的真实语句,

if ($levelChange > 0) {
    while ($levelChange != 0) {
        echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>';
        $levelChange--;
    }
}
elseif ($levelChange < 0) {
    while ($levelChange != 0) {
        echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>';
        $levelChange++;
    }
}

我的第二个例子我没有,

if ($levelChange > 0) {
    while ($levelChange) {
        echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>';
        $levelChange--;
    }
}
elseif ($levelChange < 0) {
    while ($levelChange) {
        echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>';
        $levelChange++;
    }
}

他们都工作,但哪一个更好用,为什么,如果有人知道哪个可以更快,请启发我,

由于

2 个答案:

答案 0 :(得分:2)

PHP将其参数转换为需要条件语句的布尔值。对于数字,每个非零值(!= 0)的计算结果为true。 boolean type的PHP文档有一个表格,其中包含不同类型的转换规则。

因此,if($x)相当于if($x == TRUE)。两种形式之间没有任何(可测量的)性能差异。

答案 1 :(得分:1)

在这种情况下,我会说这是你的偏好。我可能会将比较用于0,但这只是我的偏好,因为对于阅读代码的其他人来说,它稍微冗长一些。无论如何,性能都不会有太大变化。