在函数名称前面的目的是什么?

Dev*_*v01 2 php codeigniter

我知道这&是用于参考,我已经看到它使用像:

$foo = &$bar;
Run Code Online (Sandbox Code Playgroud)

要么

function foo(&$bar) {...}
Run Code Online (Sandbox Code Playgroud)

要么

foreach($array as &$value) {...}
Run Code Online (Sandbox Code Playgroud)

我知道&上述情况意味着什么.


但我在CodeIgniter中看到了这个函数:

function &get_instance() {
    return CI_Controller::get_instance();
}
Run Code Online (Sandbox Code Playgroud)

我之前从未见过&功能名称.是什么&在上面的功能呢?

Riz*_*123 5

这被称为returning by reference,它只是将返回值绑定到您为其分配的变量.在手册中有一个明显的例子:

<?php

    class foo {
        public $value = 42;

        public function &getValue() {
            return $this->value;
        }
    }

    $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.

?>
Run Code Online (Sandbox Code Playgroud)