按參考文獻返回
偶爾會有時間隱式返回引用。
當你想要使用函式來查詢引用應該繫結到哪個變數時,通過引用返回很有用。不要使用按引用返回來提高效能。引擎將自動對其進行自動優化。只有在有正當技術理由的情況下才返回引用。
摘自 PHP 文件以供參考 。
有很多不同的表格可以參考回覆,包括以下例子:
function parent(&$var) {
echo $var;
$var = "updated";
}
function &child() {
static $a = "test";
return $a;
}
parent(child()); // returns "test"
parent(child()); // returns "updated"
通過引用返回不僅限於函式引用。你還可以隱式呼叫該函式:
function &myFunction() {
static $a = 'foo';
return $a;
}
$bar = &myFunction();
$bar = "updated"
echo myFunction();
你無法直接引用函式呼叫,必須在利用它之前將其分配給變數。要了解它是如何工作的,只需嘗試 echo &myFunction();
。
筆記
- 你需要在要使用它的兩個位置指定引用(
&
)。這意味著,對於你的函式定義(function &
myFunction(){...
)和呼叫引用(function callFunction(&$variable) {...
或&myFunction();
)。 - 你只能通過引用返回變數。因此,在上面的例子中,
$a
的例項化。這意味著你無法返回表示式,否則將生成E_NOTICE
PHP 錯誤(Notice: Only variable references should be returned by reference in ......
)。 - 通過引用返回確實有合法的用例,但我應該警告,只有在探索實現相同目標的所有其他潛在選項之後,才應謹慎使用它們。