PHP返回(值); vs返回值;

时间:2010-05-27 14:10:15

标签: php coding-style return

return($var);return $var;之间是否存在差异,然后将其包装在括号中?

6 个答案:

答案 0 :(得分:32)

除非您通过引用返回,否则它们的意思相同。最好排除括号。来自the docs

  

注意:请注意,由于return()是一种语言结构而不是函数,因此不需要围绕其参数的括号。将它们排除在外是很常见的,实际上你应该这样做,因为PHP在这种情况下做的工作较少。

  

注意:在通过引用返回时,不应该在返回变量周围使用括号,因为这不起作用。您只能通过引用返回变量,而不能返回语句的结果。如果您使用return ($a);那么你不会返回一个变量,而是表达式($a)的结果(当然,这是$a的值)。

答案 1 :(得分:4)

来自PHP Manual

  

“在通过引用返回时,不应该在返回变量周围使用括号,因为这不起作用。您只能通过引用返回变量,而不是语句的结果。如果使用return($ a);那么你'不返回变量,而是返回表达式的结果($ a)(当然,这是$ a的值)。“

修改 这意味着return($var)return $var之间存在差异。具体来说,前者将返回$var的值,后者将返回$var本身。

答案 2 :(得分:3)

  

请注意,由于return()是一种语言结构而不是函数,因此不需要围绕其参数的括号。 将它们排除在外是很常见的,实际上你应该这样做,因为PHP在这种情况下的工作量较少。

     

在通过引用返回时,永远不要在返回变量周围使用括号,因为这不起作用。您只能通过引用返回变量,而不能返回语句的结果。如果你使用return($ a);然后你不是返回变量,而是返回表达式的结果($ a)(当然,这是$ a的值)。

Source

答案 3 :(得分:1)

是。如果使用括号,它将成为PHP必须首先解决的表达式,这会浪费几个CPU周期。此外,您不能仅使用return($var);

使用return $var;按引用返回

the manual中明确说明了这一点。

答案 4 :(得分:1)

这是一种语言结构,而不是一种功能,因此两者的工作几乎相同。这有两个不同之处。引用php.net:

  

如果没有提供参数,那么   括号必须省略并且为NULL   将被退回。调用return()   括号但没有参数   将导致解析错误。

  

你永远不应该使用括号   在你的返回变量周围   通过引用返回,就像这样   不行。你只能回来   变量通过引用而不是结果   一份声明。如果你使用return   ($ A);那你就不回来了   变量,但结果   表达式($ a)(当然,   $ a)的价值。

来源:php.net

答案 5 :(得分:1)

我使用括号的唯一时间是使用数组返回两个值。

return array($val,$valb);

此示例与您的初始问题不同,但这是我认为需要括号的唯一实例。