PHP|PHP引用的簡單解釋

引用

PHP的引用意味着咱們能夠用不一樣的名字來訪問一樣的內容。php

指針也是同樣的,能夠有不一樣名字的指針,訪問一樣的內容。linux

可是,PHP的引用並非指針。引用並不能訪問內存。數組

實際上,咱們能夠把引用理解爲Unix系統的硬連接函數

使用

<?php

$a = 'Hello world';
$b = &$a;

$a$b在這裏是徹底相同的,這並非$a指向了$b或者相反,而是$a$b指向了同一個地方。this

若是具備引用的數組被拷貝,其值不會解除引用。對於數組傳值給函數也是如此。指針

若是對一個未定義的變量進行引用賦值、引用參數傳遞或引用返回,則會自動建立該變量。可是值會是nullcode

除此以外,引用還能夠用來作兩件事:內存

  • 引用傳遞變量get

  • 引用返回io

引用返回

引用返回用在當想用函數找到引用應該被綁定在哪個變量上面時。

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

Note: 和參數傳遞不一樣,這裏必須在兩個地方都用 & 符號——指出返回的是一個引用,而不是一般的一個拷貝,一樣也指出 $myValue 是做爲引用的綁定,而不是一般的賦值。

定位

許多 PHP 的語法結構是經過引用機制實現的.

  • global 引用

  • $this

當用 global $var 聲明一個變量時實際上創建了一個到全局變量的引用。

<?php
    $var =& $GLOBALS["var"];
?>
相關文章
相關標籤/搜索