return($var);
和return $var;
之间是否有区别,然后用圆括号包装它?PHP return(value); vs返回值;
回答
除非您通过参考返回,它们意味着同样的事情。最好排除括号。从the docs:
注:请注意,由于
return()
是一个语言结构而非函数,不需要围绕其参数的括号内。通常将它们排除在外,实际上应该这样做,因为PHP在这种情况下的工作量较少。
注:通过引用返回时,你不应该使用括号返回变量,因为这将无法正常工作。您只能通过引用返回变量,而不是语句的结果。如果您使用
return ($a)
;那么你不会返回一个变量,而是表达式($a)
(当然,它的值为$a
)的结果。
注意,由于回报率()是一个语言结构而非函数,不需要围绕其参数的括号内。 这是很常见的情况,你应该这样做,因为PHP在这种情况下的工作量较少。
您应该从参考返回时不要在返回变量的周围使用括号,因为这样做不起作用。您只能通过引用返回变量,而不是语句的结果。如果你使用return($ a);那么你没有返回一个变量,而是表达式($ a)的结果(当然这是$ a的值)。
(Source)
是。如果使用括号,它将成为PHP必须首先解决的表达式,这是浪费几个CPU周期。此外,您不能通过参考使用return($var);
作为参考,仅通过使用return $var;
这全部在the manual中清楚地陈述。
“通过引用返回时,你不应该使用括号返回变量,因为这将无法正常工作,您只能通过引用返回变量,而不是语句的结果。如果你使用return($ a);那么你没有返回一个变量,而是表达式的结果($ a)(当然这是$ a的值)。“
编辑: 这意味着有return($var)
和return $var
之间的差。具体而言,前者将返回值$var
,后者将返回$var
本身。
这是一个语言结构,不是函数,所以两者都工作几乎相同。有两个不同tho。引用php.net:
如果没有提供任何参数,那么 括号必须被省略NULL 将被退回。调用()返回 用括号但不带参数 将导致解析错误。
和
你不应该使用括号 在你返回变量返回时,通过参考 ,因为这将 不起作用。您只能通过引用返回 变量,而不是结果的声明 。如果您使用退货 ($ a);那么你就不能返回 变量,但 表达式的结果($ A)(这是当然, 的的$值)。
来源:php.net
我使用括号中的唯一时间是与阵列返回两个值时。
return array($val,$valb);
这个例子与你最初的问题不同,但是这是唯一的例子,我认为括号是必需的。
非常好的一点! – 2010-05-27 15:52:48
只有我使用它们的时间是确定一个快速的返回值:'回报:;'但大部分时间我把括号(是$ var'是的“不”?) – Zack 2010-05-27 16:57:16
- 1. 箭头函数体与返回值。 ()=> {return value;} vs.()=> value;
- 2. textarea does not return value
- 3. php class return;函数返回
- 4. @Value返回错误值
- 5. @Value注释不返回值
- 6. VBA - 评估返回值#VALUE
- 7. Javascript new operator * always * overrides return value?
- 8. PHP返回vs回声
- 9. Elseif返回#VALUE
- 10. proc return vs lambda return
- 11. jQuery Click - POST/GET return success'返回值
- 12. return;唯一没有返回值
- 13. 返回值php
- 14. LINQ:返回var-value?
- 15. .value返回Nothing(javaScript)
- 16. Excel - VLOOKUP返回#VALUE
- 17. QDoubleSpinBox value()返回不正确的double值
- 18. 为什么'value'== value在PHP中返回TRUE?
- 19. PHP的echo函数的返回值VS回声内功能
- 20. RETURN QUERY VS RETURN QUERY EXECUTE
- 21. PHP返回值
- 22. PHP函数'返回'不返回值
- 23. 作为函数返回:return()
- 24. return deferred.promise;并返回deferred.promise();
- 25. onsubmit(return test();)不返回false;
- 26. 返回1并返回0 VS返回true并返回false
- 27. jquery:event.stopImmediatePropagation()vs return false
- 28. 返回VS破
- 29. PHP Session类返回值
- 30. PHP docBlock @return className
较少的工作总是更好,谢谢。我猜这也适用于'回声'以及? – 2010-05-27 14:29:48
@Josh K:它确实(加号,使用逗号而不是连接运算符)。 – webbiedave 2010-05-27 14:33:14
另请注意,减少工作可怜的过度工作的手指! – salathe 2010-05-27 14:44:46