校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 總結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內存釋放以及垃圾回收的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 大同市| 长治市| 康乐县| 如皋市| 靖宇县| 惠州市| 云龙县| 花莲县| 朝阳区| 柘城县| 原平市| 济源市| 确山县| 武冈市| 无棣县| 盘锦市| 南部县| 县级市| 秦皇岛市| 遂昌县| 昭苏县| 荣成市| 武威市| 青岛市| 巴林右旗| 中卫市| 淳化县| 宣汉县| 恩施市| 巴中市| 宁陵县| 南皮县| 定远县| 敖汉旗| 南岸区| 留坝县| 偃师市| 上饶市| 林口县| 勃利县| 新泰市|