【发布时间】:2011-02-24 16:43:27
【问题描述】:
return($var); 和 return $var; 除了用括号括起来之外有什么区别吗?
【问题讨论】:
标签: php coding-style return
return($var); 和 return $var; 除了用括号括起来之外有什么区别吗?
【问题讨论】:
标签: php coding-style return
除非您通过引用返回,否则它们的含义相同。最好排除括号。来自the docs:
注意:请注意,由于
return()是一种语言结构而不是函数,因此不需要将其参数括在括号中。将它们排除在外是很常见的,实际上您应该这样做,因为在这种情况下 PHP 要做的工作较少。
注意:当通过引用返回时,你不应该在你的返回变量周围使用括号,因为这不起作用。您只能通过引用返回变量,而不是语句的结果。如果你使用
return ($a);那么您返回的不是变量,而是表达式($a)的结果(当然,也就是$a的值)。
【讨论】:
echo?
echo "Hello", $person->name, " !";?
来自PHP Manual:
“当通过引用返回时,你不应该在你的返回变量周围使用括号,因为这不起作用。你只能通过引用返回变量,而不是语句的结果。如果你使用 return ($a); 那么你' 不是返回变量,而是表达式 ($a) 的结果(当然也就是 $a 的值)。”
编辑:
这意味着return($var) 和return $var 之间存在差异。具体来说,前者会返回$var的值,后者会返回$var本身。
【讨论】:
请注意,由于 return() 是一种语言结构而不是函数,因此不需要在其参数周围加上括号。 将它们排除在外是很常见的,实际上您应该这样做,因为在这种情况下 PHP 要做的工作较少。
您应该在通过引用返回时不要在返回变量周围使用括号,因为这不起作用。您只能通过引用返回变量,而不是语句的结果。如果你使用 return ($a);那么你返回的不是变量,而是表达式 ($a) 的结果(当然是 $a 的值)。
(Source)
【讨论】:
是的。如果使用括号,它将成为PHP必须首先解决的表达式,这浪费了几个CPU周期。此外,您不能使用return($var); 通过引用返回,只能使用return $var;
这一切都在the manual中明确说明。
【讨论】:
这是一种语言结构,而不是函数,因此两者的工作方式几乎相同。有两个区别。引用php.net:
如果没有提供参数,那么 必须省略括号并且为 NULL 将被退回。调用return() 带括号但不带参数 会导致解析错误。
和
你不应该使用括号 围绕你的返回变量时 通过引用返回,因为这将 不行。你只能返回 引用变量,而不是结果 的一份声明。如果您使用返回 ($a);那么你不会返回 变量,但结果 表达式 ($a) (当然, $a) 的值。
来源:php.net
【讨论】:
我唯一使用括号的时候是用一个数组返回两个值。
return array($val,$valb);
此示例与您最初的问题不同,但这是我认为需要括号的唯一示例。
【讨论】:
return ($var ? 'yep' : 'no'); 但大多数时候我放弃了括号'