PHP引用返回

示例

有时,您有时需要隐式返回引用。

当您想使用函数查找引用应绑定到哪个变量时,按引用返回非常有用。不要使用引用返回来提高性能。引擎将自动自动对此进行优化。仅在有充分的技术理由时才返回引用。

取自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 ......)。

  • 引用返回确实具有合理的用例,但是我应该警告,只有在探索了实现同一目标的所有其他可能选择之后,才应谨慎使用它们。