return($var);
和return $var;
之间是否存在差异,然后将其包装在括号中?
答案 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);
此示例与您的初始问题不同,但这是我认为需要括号的唯一实例。