使用PHP中的数学计算的数字定义

时间:2011-12-07 19:04:56

标签: php math variables numbers

我注意到许多开发人员使用Math操作作为变量值,例如:

$time = 60 * 60 * 24 * 7; // 7 days

而不是仅仅分配计算值

$time = 604800;

我知道它使代码更容易理解,但这不会影响性能吗? 你认为这样做是一种好习惯吗?

4 个答案:

答案 0 :(得分:3)

它可能会影响性能,但我们谈的是一些非常小的事情,甚至不值得考虑(大约99.9%的PHP应用程序)。

我认为这是一个很好的做法,因为如果你想将价值提高到8天,你就不必重新计算所有内容,只需将 7 更改为 8

答案 1 :(得分:3)

在编译语言中,没有性能损失,因为计算将在编译时完成。 PHP通常不编译,因此可能会有很小的性能损失。在大多数情况下,我更喜欢更易读的代码以获得更高的性能(除非代码成为瓶颈)。所以在这种情况下不要担心性能。

现在,如果我们比较您的示例,那么

$time = 60 * 60 * 24 * 7;
即使没有评论,

也是自我解释的。如果你写

$time = 604800;

然后它并不明显,价值代表什么。现在,您可以添加注释并编写

$time = 604800; // 7 days in seconds

但这有两个原因:

  1. 您正在复制信息,这本身可能不是一个大问题,但
  2. 如果您在不修改评论的情况下更改了值,那么您的代码中就会有有害的评论。这是一个更大的问题,实际上是由信息重复引起的。

答案 2 :(得分:2)

php不是担心这种微优化的含义的语言。我更喜欢可读性,除非性能损失很大。这很少见。

答案 3 :(得分:1)

我不担心性能问题。这是一个非常简单的数学问题,知道数字代表什么的优势远远超过了这个非常小的操作的性能。

那就是说,如果你在一个循环中使用它,我会先计算它

$time = 60 * 60 * 24 * 7; // 7 days

for ($i = 0; $i < 10000000; $i++)
{
    echo $time;
}