函数和&函数之间的区别

12
function fun1();
function &fun1();

这两者之间有什么区别?


http://www.php.net/manual/en/language.references.return.php - user187291
2
抱歉重复了。我不确定在通过函数使用时是否有区别。 - Joe Smack
2个回答

19

如果在函数名前加上“&”符号,该函数将返回一个变量的引用而不是值。

返回引用时,当您想要使用函数来查找引用应绑定到哪个变量时很有用。不要使用返回引用来提高性能。引擎会自动优化此功能。仅在具有有效技术原因时返回引用。

摘自PHP手册 - 返回引用


如果我通过引用返回(比如说 $var = fun(123)),这是否意味着当我改变 $var 时,它实际上会改变函数内部的变量(即 fun 内部的变量)? - Joe Smack
引用将指向相同的内存地址。当您修改引用时,也会修改原始对象。 - Evan Mulawski
这个网站也许会有所帮助:http://www.elated.com/articles/php-references/ - Evan Mulawski

6

区别在于返回值的返回方式:没有&,返回值是按值返回的,而&,返回值是按引用返回的

后者意味着你需要在return语句中使用变量,因为只能引用变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接