为什么要在返回前分配给$ var?

时间:2018-09-21 01:26:06

标签: php

我看到很多人在返回值之前将需要返回的内容分配给函数。同样,当他们在可以直接返回被调用函数输出的函数中调用函数时,他们首先将其分配给变量,这真的需要吗?

function ($foo) {

    $bar = $this->otherFunction($foo);

    return $bar;
}

代替:

function ($foo) {

    return $this->otherFunction($foo); 

}

我坚信只有在您启动或在代码中有多个部分可以声明和覆盖$ foo并确保您作为最后的选择返回时,才需要返回$ foo。

我找不到令人满意的答案。

2 个答案:

答案 0 :(得分:0)

这两种代码样式之间没有太大区别...

如果有的话,第一种样式需要声明一个变量,这是MEM的浪费,不需要$ bar。

但是如果您将来需要在返回之前更改函数的返回结果,则第二种样式可能易于维护。

答案 1 :(得分:0)

我发现自己一直在这样做,原因很简单:调试。

使用调试器时,在要分析的变量被填充后的之后在返回语句上放置断点要容易得多,因为将其放在填充的行上将导致在发生之前中断。

$bar = $this->otherFunction($foo);  //BREAK POINT HERE => $bar will be empty/not set
return $bar;                        //BREAK POINT HERE => $bar is filled and you can analyse it

此外,如果您不使用调试器,但仍需要分析$bar的内容,则在这些语句之间添加回显会容易得多。

另一个原因是可读性。尤其是在使用嵌套函数时,如果不是全部都在一行中,那么更容易理解代码。