按參考分配

這是參考的第一階段。基本上,當你通過引用分配時,你允許兩個變數共享相同的值。

$foo = &$bar;

$foo$bar 在這裡是相等的。他們沒有指向彼此。他們指向同一個地方( 價值 )。

你也可以在 array() 語言結構中通過引用進行分配。雖然不是嚴格意義上的參考作業。

$foo = 'hi';
$bar = array(1, 2);
$array = array(&$foo, &$bar[0]);

但請注意,陣列內部的引用可能存在危險。使用右側的引用執行正常(非引用)賦值不會將左側轉換為引用,但在這些正常賦值中保留陣列內的引用。這也適用於通過值傳遞陣列的函式呼叫。

通過引用分配不僅限於變數和陣列,它們也存在於函式和所有傳遞引用關聯中。

function incrementArray(&$arr) {
    foreach ($arr as &$val) {
        $val++;
    }
}

function &getArray() {
    static $arr = [1, 2, 3];
    return $arr;
}

incrementArray(getArray());
var_dump(getArray()); // prints an array [2, 3, 4]

如上所述,賦值是函式定義中的關鍵。你不能通過引用傳遞一個表示式,只有一個值/變數。因此,$a 中的 $a 的例項化。