声明var会更有效:
$datetime = Carbon::now();
并在方法中两次使用var:
$toDate < $datetime && $fromDate > $datetime
或不设置var并调用两次Carbon :: now()两次:
$toDate < Carbon::now() && $fromDate > Carbon::now()
答案 0 :(得分:4)
我将遵循DRY原则并遵循第一个解决方案:
$datetime = Carbon::now();
if ($toDate < $datetime && $fromDate > $datetime) ...
理论上,由于从堆栈中推送/弹出上下文,因此方法调用可能会稍微贵一些。但是,我认为差异可以忽略不计。
有人提出了关于竞赛条件的有效观点,如果您两次调用now()
方法可能会发生竞赛条件。第二个调用可能返回与第一个调用不同的值。
答案 1 :(得分:0)
答案和几乎编程世界中的所有东西都取决于两件事:时间和空间,每个程序员在优化时都必须在两者之间选择一个。
这2件事是执行程序所花费的时间和执行期间使用的空间(内存)。
所以您要问的是将Carbon :: now()的值保存在变量中还是直接调用它取决于您要优化的内容。时间或空间。
如果您的php脚本会很长,即花费更多时间,那么最好一次调用该函数并保存其值以节省执行时间,即- $ datetime = Carbon :: now();
如果您希望程序使内存使用最小化,这对于服务器来说似乎很明显,因为它们需要同时响应多个请求,所以可以直接调用该方法。
但是同样,您只能在时间或内存上优化一件事。因此,选择您要实现的目标。