引用返回
class foo
}$obj = new foo;
$myvalue = &$obj->getvalue(); // $myvalue is a reference to $obj->value, which is 42.
$obj->value = 2;
echo $myvalue; // prints the new value of $obj->value, i.e. 2.
本例中
getvalue 函式所返回的物件的屬性將被賦值,而不是拷貝,就和沒有用引用語法一樣。
note: 和引數傳遞不同,這裡必須在兩個地方都用 &符號——指出返回的是乙個引用,而不是通常的乙個拷貝,同樣也指出 $myvalue是作為引用的繫結,而不是通常的賦值。
note: 如果試圖這樣從函式返回引用:return ($this->value);,這將不會起作用,因為在試圖返回乙個表示式的結果而不是乙個引用的變數。只能從函式返回引用變數——沒別的方法。如果**試圖返回乙個動態表示式或new 運算子的結果,自 php 4.4.0 和 php 5.1.0 起會發出一條e_notice
錯誤。
取消引用
$a = 1;
$b =& $a;
unset($a);
不會 unset
$b,只是
$a。
再拿這個和 unix 的 unlink 呼叫來模擬一下可能有助於理解。
$var =& $globals["var"];
這意味著,例如,unset
$var 不會 unset 全域性變數。
在乙個物件的方法中,$this 永遠是呼叫它的物件的引用。
php引用返回與取消引用的詳解
一 引用返回 引用返回用在當想用函式找到引用應該被繫結在哪乙個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行優化。僅在有合理的技術原因時才返回引用!要返回引用,使用此語法 複製 如下 phpclass foo obj new foo myvalue obj getvalue myval...
php禁止返回本業 php引用返回與取消引用的詳解
一 引用返回引用返回用在當想用函式找到引用應該被繫結在哪乙個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行優化。僅在有合理的技術原因時才返回引用!要返回引用,使用此語法 class foo public value 42 public function getvalue return ...
PHP手冊 php物件的引用
class a class b function normalassignment obj function referenceassignment obj a new a b a b foo abc 對 a的成員造成了影響 b new b 不影響 a echo a foo abc normalas...