婷婷综合国产,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內存釋放以及垃圾回收的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 镇赉县| 邛崃市| 香格里拉县| 子长县| 文山县| 鹰潭市| 永善县| 涪陵区| 小金县| 北海市| 泰来县| 蒲江县| 克山县| 荆州市| 离岛区| 河间市| 保康县| 抚宁县| 定州市| 金山区| 突泉县| 澜沧| 江西省| 连江县| 舟山市| 揭阳市| 余江县| 水富县| 来凤县| 安新县| 枣庄市| 股票| 舒兰市| 神农架林区| 得荣县| 琼结县| 广南县| 礼泉县| 文成县| 黔东| 登封市|