複製鏈接
請複製以下鏈接發送給好友

引用返回

鎖定
引用返回用在當想用函數找到引用應該被綁定在哪一個變量上面時。
中文名
引用返回
用    途
當想用函數找到引用應該被綁定在哪一個變量上面時

目錄

引用返回案例

不要用返回引用來增加性能,引擎足夠聰明來自己進行優化。僅在有合理的技術原因時才返回引用!要返回引用,使用此語法:<?php [1] 
function &find_var($param)
/* ...code... */
return $found_var;
$foo =& find_var($bar);
$foo->x = 2;
?>

引用返回解決辦法

本例中 find_var 函數所返回的對象的屬性將被賦值,而不是拷貝,就和沒有用引用語法一樣。
注: 和參數傳遞不同,這裏必須在兩個地方都用 & 符號――指出返回的是一個引用,而不是通常的一個拷貝,同樣也指出 $foo 是作為引用的綁定,而不是通常的賦值。
注: 如果試圖這樣從函數返回引用:return ($found_var);,這將不會起作用,因為在試圖返回一個表達式的結果而不是一個引用的變量。只能從函數返回引用變量――沒別的方法。如果代碼試圖返回一個動態表達式或 new 運算符的結果,自 php 4.4.0 和 php 5.1.0 起會發出一條 E_NOTICE 錯誤。
引用返回與非引用返回的區別:
引用返回的時候不會生成要返回值的副本,而非引用返回在返回值的時候,通常會先生成一個副本,再將這個副本返回。
例:
#include<iostream>
using std::cout;
using std::endl;
int& func(int& x,int& y)//中間不產生副本
int temp=x+y;
return temp;
void main( )
int a=1;
int b=2;
int c=func(a,b);
cout<<c<<endl;
system("PAUSE");
參考資料