按参考文献返回
偶尔会有时间隐式返回引用。
当你想要使用函数来查找引用应该绑定到哪个变量时,通过引用返回很有用。不要使用按引用返回来提高性能。引擎将自动对其进行自动优化。只有在有正当技术理由的情况下才返回引用。
摘自 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 ......
)。 - 通过引用返回确实有合法的用例,但我应该警告,只有在探索实现相同目标的所有其他潜在选项之后,才应谨慎使用它们。