2010-05-27 115 views

回答

31

除非您通过参考返回,它们意味着同样的事情。最好排除括号。从the docs

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

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

+0

较少的工作总是更好,谢谢。我猜这也适用于'回声'以及? – 2010-05-27 14:29:48

+1

@Josh K:它确实(加号,使用逗号而不是连接运算符)。 – webbiedave 2010-05-27 14:33:14

+4

另请注意,减少工作可怜的过度工作的手指! – salathe 2010-05-27 14:44:46

3

注意,由于回报率()是一个语言结构而非函数,不需要围绕其参数的括号内。 这是很常见的情况,你应该这样做,因为PHP在这种情况下的工作量较少。

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

Source

1

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

这全部在the manual中清楚地陈述。

4

PHP Manual

“通过引用返回时,你不应该使用括号返回变量,因为这将无法正常工作,您只能通过引用返回变量,而不是语句的结果。如果你使用return($ a);那么你没有返回一个变量,而是表达式的结果($ a)(当然这是$ a的值)。“

编辑: 这意味着有return($var)return $var之间的差。具体而言,前者将返回值$var,后者将返回$var本身。

1

这是一个语言结构,不是函数,所以两者都工作几乎相同。有两个不同tho。引用php.net:

如果没有提供任何参数,那么 括号必须被省略NULL 将被退回。调用()返回 用括号但不带参数 将导致解析错误。

你不应该使用括号 在你返回变量返回时,通过参考 ,因为这将 不起作用。您只能通过引用返回 变量,而不是结果的声明 。如果您使用退货 ($ a);那么你就不能返回 变量,但 表达式的结果($ A)(这是当然, 的的$值)。

来源:php.net

2

我使用括号中的唯一时间是与阵列返回两个值时。

return array($val,$valb); 

这个例子与你最初的问题不同,但是这是唯一的例子,我认为括号是必需的。

+0

非常好的一点! – 2010-05-27 15:52:48

+0

只有我使用它们的时间是确定一个快速的返回值:'回报:;'但大部分时间我把括号(是$ var'是的“不”?) – Zack 2010-05-27 16:57:16