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

Posted

技术标签:

【中文标题】PHP 返回(值); vs 返回值;【英文标题】:PHP return(value); vs return value; 【发布时间】:2011-02-24 16:43:27 【问题描述】:

return($var);return $var; 除了用括号括起来之外有什么区别吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

工作越少越好,谢谢。我猜这也适用于echo @Josh K:确实如此(另外,使用逗号而不是连接运算符)。 还要注意你可怜的过度劳累的手指的工作量减少了! @webbie:你什么意思?喜欢echo "Hello", $person->name, " !";【参考方案2】:

来自PHP Manual:

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

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

【讨论】:

【参考方案3】:

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

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

(Source)

【讨论】:

【参考方案4】:

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

这一切都在the manual中明确说明。

【讨论】:

【参考方案5】:

这是一种语言结构,而不是函数,因此两者的工作方式几乎相同。有两个区别。引用php.net:

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

你不应该使用括号 围绕你的返回变量时 通过引用返回,因为这将 不行。你只能返回 引用变量,而不是结果 的一份声明。如果您使用返回 ($a);那么你不会返回 变量,但结果 表达式 ($a) (当然, $a) 的值。

来源:php.net

【讨论】:

【参考方案6】:

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

return array($val,$valb);

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

【讨论】:

我只使用它们来确定一个快速的返回值:return ($var ? 'yep' : 'no'); 但大多数时候我放弃了括号'

以上是关于PHP 返回(值); vs 返回值;的主要内容,如果未能解决你的问题,请参考以下文章

用PHP调用API返回JSON值,怎么把JSON返回值调用到html呢?

php函数 返回值

php 怎样获取 json 返回值

请问VS2010中,如何查看调试过程中函数的返回值?

PHP返回值到div值

php通过popen获取的一个命令的返回值如何分析出来