引用返回

引用返回用在當想用函式找到引用應該被綁定在哪一個變數上面時。

案例,解決辦法,

案例

不要用返回引用來增加性能,引擎足夠聰明來自己進行最佳化。僅在有合理的技術原因時才返回引用!要返回引用,使用此語法: <?php
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");
}

相關詞條

熱門詞條

聯絡我們