PHP中引用賦值(assign by reference)的使用

引用賦值

用不同的名字訪問同一個變量內容,使用 & 符號

$a = &$b;

面試實戰題

//寫出如下程序的輸出結果
$d = ['a', 'b', 'c'];

foreach($d as $k => $v)
{
  $v = &$d[$k];
}

//程序運行時,每一次循環結束後變量 $d 的值是什麼?請解釋。
//程序執行完成後,變量 $d 的值是什麼?請解釋。

使用函數

memory_get_usage( $real_usage = false)//返回分配給PHP的內存大小字節數
range()//返回一個數組序列
xdebug_debug_zval() 用於顯示變量的信息

COW機制: Copy-On-Write

  • 在PHP內核中,COW也是主要的內存優化手段。
  • 在通過變量賦值的方式賦值給變量時,不會申請新內存來存放新變量的值,而是簡單的通過一個計數器來共用內存。只有在其中的一個引用指向變量的值發生變化時,才申請新空間來保存值內容,以減少對內存的佔用。
  • 在很多場景下PHP都使用COW進行內存的優化。比如:變量的多次賦值、函數參數傳遞,並在函數體內修改實參等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章