什么是引用變量,在PHP當中,用什么符號定義引用變量?
不同的名字訪問同一個變量內容,使用 表示。
COW(copy on write)
內存優化的常見手段,在php中也采用了這種方式來優化內存。
寫時復制,即只有當對其中一個或多個變量進行寫操作的時候,才會復制一份內存,對其內容進行修改。
在PHP中使用memory_get_usage()觀察內存變化
演示未使用 (引用變量)
$a = range(0,1000); var_dump(memory_get_usage()); $b = $a;` var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());
運行結果:
內存在第一次和第二次并沒有太大的差異,第三次產生較大差異
使用
$a = range(0,1000); var_dump(memory_get_usage()); $b = var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());
運行結果:
在使用引用傳值內存解析分析:
$a被賦值時在內存中占據A內存空間,$b= $a 時$b指向同一內存空間,當$a發生改變時$b所占據的內存空間會跟隨$a變化
unsetunset() 只會取消引用不會銷毀空間
$a=1;unset($b);echo $a;
輸出結果:1
內存空間分析:
$a被賦值 $b= $a之后$a與$b直行同一內存空間,當unset($b)時取消了$b對$a的引用,使$b不在指向$a的內存空間
題外話對象本身就是引用傳遞
html' target='_blank'>class Person public $name= zhangsan $p1 =new Person;xdebug_debug_zval( p1 $p2 =$p1;xdebug_debug_zval( p1 $p2- name= lisi xdebug_debug_zval( p1
運行結果:
結果分析:
?php $data = [ a , b , c foreach($data as $key = $val) $val = $data[$key]; var_dump($data);
寫出如上程序的輸出結果?
程序運行時,每一次循環結束后變量$data的值是什么?
程序執行完成后,變量$data的值是什么?
內存變化及解析:
相關推薦:
php變量引用與對象引用詳解介紹_PHP教程
php變量引用與對象引用詳解介紹
以上就是php引用變量是什么?php引用變量的實例講解的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答