php引用(&)

來源:互聯網
上載者:User
##### php引用php引用允許兩個變數指向同一個內容``````如果對一個未定義的變數進行引用賦值,引用穿參,則會自動建立該變數```function foo(&$var){}foo($a);var_dump($a);//輸出null $b = array();foo($b['b']);var_dump(array_key_exists('b',$b));//bool true$c = new stdClass();foo($c->d);var_dump(property_exists($c,'d'));//bool true```如果在一個函數內部給一個聲明為global變數賦予一個引用,該引用只在函數內部可見,可以通過使用$GLOBALS數組避免```$var1 = "example variable";$var2 = "";function global_references($use_globals){    global $var1,$var2;    if(!$use_globals){        $var2  =& $var1;    }else{        $GLOBALS["var2"] =& $var1;    }}global_references(false);echo "var2 is set to $var2"."
";//"var2 is set to "global_references(true);echo "var2 is set to $var2"."
";//"var2 is set to example variable"```取值 (Dereference)當`unset`一個引用,只是斷開了變數名和變數內容之間的綁定,並不代表變數的內容被銷毀了``````函數的引用傳遞```function test(&$a){$a = $a +100;}$b = 1;echo $b;//輸出1test($b);//這裡$b傳遞給函數的其實是$b變數內容所處的記憶體位址,通過函數裡改變$a的值就可以改變$b的值了echo $b;```函數的引用返回``````引用結構出現在物件導向中```class fucker{ private $data = 'hi'; public function &get(){ return $this->data; } public function out(){ echo $this->data; }}$q = new fucker();$d = & $q->get();$q->out();$d = 'fuck';$q->out();$d = 'u';$q->out();$d = 'sir';$q->out();//hifuckusir```
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.