效率:设置var或调用方法?

时间:2019-02-06 15:31:46

标签: php

声明var会更有效:

$datetime = Carbon::now();

并在方法中两次使用var:

$toDate < $datetime && $fromDate > $datetime

或不设置var并调用两次Carbon :: now()两次:

$toDate < Carbon::now() && $fromDate > Carbon::now()

2 个答案:

答案 0 :(得分:4)

我将遵循DRY原则并遵循第一个解决方案:

$datetime = Carbon::now();
if ($toDate < $datetime && $fromDate > $datetime) ...

理论上,由于从堆栈中推送/弹出上下文,因此方法调用可能会稍微贵一些。但是,我认为差异可以忽略不计。

有人提出了关于竞赛条件的有效观点,如果您两次调用now()方法可能会发生竞赛条件。第二个调用可能返回与第一个调用不同的值。

答案 1 :(得分:0)

答案和几乎编程世界中的所有东西都取决于两件事:时间和空间,每个程序员在优化时都必须在两者之间选择一个。

这2件事是执行程序所花费的时间和执行期间使用的空间(内存)。

所以您要问的是将Carbon :: now()的值保存在变量中还是直接调用它取决于您要优化的内容。时间或空间。

如果您的php脚本会很长,即花费更多时间,那么最好一次调用该函数并保存其值以节省执行时间,即-     $ datetime = Carbon :: now();

如果您希望程序使内存使用最小化,这对于服务器来说似乎很明显,因为它们需要同时响应多个请求,所以可以直接调用该方法。

但是同样,您只能在时间或内存上优化一件事。因此,选择您要实现的目标。