引用 - PHP手冊筆記

來源:互聯網
上載者:User
引用是什麼

PHP中的引用意味著,用不同的變數名訪問同一變數內容,類似於Unix的檔案名稱和檔案本身(變數名是目錄條目,變數內容是檔案本身,即用不同的目錄條目訪問同一檔案),可以看做Unix檔案系統中的永久連結。

檔案系統中的連結有兩種,一種被稱為永久連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生永久連結。硬串連指通過索引節點來進行的串連。在Linux的檔案系統中,儲存在磁碟分割中的檔案不管是什麼類型都給它分配一個編號,稱為索引節點號(InodeIndex)。在Linux中,多個檔案名稱指向同一索引節點是存在的。一般這種串連就是硬串連。硬串連的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬串連到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的串連。只刪除一個串連並不影響索引節點本身和其它的串連,只有當最後一個串連被刪除後,檔案的資料區塊及目錄的串連才會被釋放。也就是說,檔案才會被真正刪除。與硬串連相對應,Lnux系統中還存在另一種串連,稱為符號串連(Symbilc Link),也叫軟串連。軟連結檔案有點類似於Windows的捷徑。它實際上是特殊檔案的一種。在符號串連中,檔案實際上是一個文字檔,其中包含的有另一檔案的位置資訊。

引用主要用來做三件事:

  • 指向同一內容
  • 用引用傳遞變數
  • 引用返回

指向同一內容

引用允許允許用兩個變數指向同一個內容,如$a = & $b,意味著$a$b指向同一個變數。

如果對一個未定義的變數進行引用賦值、引用參數傳遞或引用返回,則會自動建立該變數。比如,下面的程式會自動建立變數$a

function foo(&$var) {}foo($a);

自PHP 5起,new操作符自動返回引用。

引用傳遞

用引用傳遞變數,可以通過下面的代碼實現,foo函數中變數$var指向了和$a指向的同一內容。。

只有函數定義中有引用符號&,在函數調用時沒有引用符號&

引用返回

要返回引用,使用下面的文法。

value;}}$obj = new foo;$myValue = & $obj->getValue();$obj->value = 2;echo $myValue;

注意,引用返回和參數傳遞不同,函數定義和函數調用(指出返回的是一個引用,而不是通常的一個拷貝)這兩個地方都用&符號。

取值 (Dereference)

unset()一個引用時,只是斷開了變數名和變數內容之間的綁定,變數內容不被銷毀。

引用定位

許多PHP的文法結構是通過引用機制實現的,比如global引用和$this指標。

當用global $var聲明一個變數時,實際上是建立了一個到全域變數的引用,和$var = & $GLOBALS['var']作用是相同的。在對象方法中,$this永遠是調用它的對象的引用。

(全文完)

以上就介紹了引用 - PHP手冊筆記,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.