婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 總結PHP內存釋放以及垃圾回收

總結PHP內存釋放以及垃圾回收

熱門標簽:寧波外呼營銷系統 上海做外呼線路的通信公司 電話機器人銷售主要負責什么 地圖標注專員怎么樣 房產中介用的是什么外呼系統 長沙做地圖標注公司 遼寧ai電銷機器人價格 四川保險智能外呼系統供應商 福建銀行智能外呼系統價格

引用賦值

$a = 'apple';
$b = $a;

上述代碼中,我將一個字符串賦值給變量a,然后將a的引用賦值給了變量b。顯然,這個時候的內存指向應該是這樣的:

$a -> 'apple' - $b

a和b指向了同一塊內存區域,我們通過 var_dump($a, $b) 得到 string(5) "apple" string(5) "apple" ,這是我們預期的結果。

unset 函數

假如我想將 'apple' 這個字符串從內存中釋放掉。我是這么做的:

unset($a);

但是通過再次打印 $a $b 兩變量的信息,我得到了這樣的結果:Notice: Undefined variable: a 和 string(5) "apple" 。奇怪,$a $b 同時指向一塊內存區域,又明明將$a釋放了,為什么$b還是'apple'。

其實是這樣的,unset()這是將一個變量指針銷毀了,并沒有釋放掉那塊內存區域中存放的字符串,所以執行完操作之后,內存指向只是變成了這樣:

'apple' - $b

要牢記重點: unset()并沒有釋放變量所指向的那塊內存,而只是將變量指針銷毀了。同時,將那塊內存的 引用計數 減1,當引用計數為0時,也就是說當那塊內存不被任何變量引用時,便會觸發php的垃圾回收。

直接回收

那要怎樣做才能真正釋放掉 'apple' 所占用的內存呢?

利用上述方法,我們可以在 unset($a) 之后再 unset($b) ,將內存區域的所有引用都銷毀,引用計數減為0了,自然就被php回收了。

當然,還有更直接的方法:

$a = null;

直接賦值 null 會將將 $a 所指向的內存區域置空,并將引用計數歸零,內存便被釋放。

腳本執行結束

php是腳本語言,當腳本執行結束之后,腳本內使用的所有內存都會被釋放。

您可能感興趣的文章:
  • PHP session垃圾回收機制實例分析
  • PHP進階學習之垃圾回收機制詳解
  • PHP析構函數destruct與垃圾回收機制的講解
  • 掌握PHP垃圾回收機制詳解
  • php中session垃圾回收機制
  • 簡單談談PHP的垃圾回收機制
  • 深入解析PHP垃圾回收機制對內存泄露的處理
  • PHP5.3的垃圾回收機制(動態存儲分配方案)深入理解
  • 分析PHP的垃圾回收機制

標簽:常德 宿遷 工商登記 澳門 宜春 延安 深圳 佛山

巨人網絡通訊聲明:本文標題《總結PHP內存釋放以及垃圾回收》,本文關鍵詞  總結,PHP,內存,釋放,以及,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《總結PHP內存釋放以及垃圾回收》相關的同類信息!
  • 本頁收集關于總結PHP內存釋放以及垃圾回收的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 定日县| 铁岭县| 余干县| 木兰县| 泰来县| 察隅县| 明光市| 湘潭县| 长汀县| 竹北市| 梅河口市| 华阴市| 澎湖县| 清河县| 勃利县| 宝清县| 内乡县| 恭城| 永泰县| 青铜峡市| 孙吴县| 江津市| 滨州市| 新闻| 阿拉善左旗| 资溪县| 义马市| 商城县| 永登县| 乳山市| 阳新县| 普洱| 庆城县| 关岭| 蓬溪县| 旌德县| 延安市| 丹江口市| 股票| 麻城市| 米泉市|