欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總結(jié)PHP內(nèi)存釋放以及垃圾回收

 更新時間:2018年03月29日 14:31:37   作者:Xavier  
本篇文章給大家分享了關(guān)于PHP寫程序的小技巧,關(guān)于內(nèi)存釋放以及垃圾回收的相關(guān)問題,有興趣的朋友學(xué)習(xí)下。

引用賦值

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

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

$a -> 'apple' <- $b

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

unset 函數(shù)

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

unset($a);

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

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

'apple' <- $b

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

直接回收

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

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

當(dāng)然,還有更直接的方法:

$a = null;

直接賦值 null 會將將 $a 所指向的內(nèi)存區(qū)域置空,并將引用計(jì)數(shù)歸零,內(nèi)存便被釋放。

腳本執(zhí)行結(jié)束

php是腳本語言,當(dāng)腳本執(zhí)行結(jié)束之后,腳本內(nèi)使用的所有內(nèi)存都會被釋放。

相關(guān)文章

  • Thinkphp框架開發(fā)移動端接口(2)

    Thinkphp框架開發(fā)移動端接口(2)

    這篇文章主要介紹了thinkphp框架開發(fā)移動端接口的第2種方法,實(shí)現(xiàn)移動端訪問自動切換移動主題模板,從而實(shí)現(xiàn)偽app訪問,感興趣的小伙伴們可以參考一下
    2016-08-08
  • PHP中常用的字符串格式化函數(shù)總結(jié)

    PHP中常用的字符串格式化函數(shù)總結(jié)

    這篇文章主要介紹了PHP中常用的字符串格式化函數(shù)總結(jié),本文講解的函數(shù)是WEB中經(jīng)常用到的,例如取出空格和字符串填補(bǔ)函數(shù)、字符串大小寫的轉(zhuǎn)換、和HTML標(biāo)簽相關(guān)的字符串格式化等,需要的朋友可以參考下
    2014-11-11
  • php版微信小店調(diào)用api示例代碼

    php版微信小店調(diào)用api示例代碼

    這篇文章主要介紹了php版微信小店調(diào)用api用法,結(jié)合實(shí)例形式分析了微信小店API接口調(diào)用展示商品信息的基本操作技巧,需要的朋友可以參考下
    2016-11-11
  • 解析linux下安裝memcacheq(mcq)全過程筆記

    解析linux下安裝memcacheq(mcq)全過程筆記

    本篇文章是對linux下安裝memcacheq(mcq)全過程筆記進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php7連接MySQL實(shí)現(xiàn)簡易查詢程序的方法

    php7連接MySQL實(shí)現(xiàn)簡易查詢程序的方法

    這篇文章主要給大家介紹了關(guān)于php7連接MySQL實(shí)現(xiàn)簡易查詢程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • win7安裝php框架Yii的方法

    win7安裝php框架Yii的方法

    這篇文章主要介紹了win7安裝php框架Yii的方法,較為詳細(xì)的分析講述了Yii框架的下載、安裝及相應(yīng)問題的解決方法,需要的朋友可以參考下
    2016-01-01
  • 使用PHP8提升開發(fā)效率的技巧分享

    使用PHP8提升開發(fā)效率的技巧分享

    PHP 8 是 PHP 語言的一個重要版本,引入了許多新特性和改進(jìn),旨在提高開發(fā)效率,本文將探討一下PHP 8如何通過各種功能和語言改進(jìn)來促進(jìn)開發(fā)效率的提升,感興趣的小伙伴可以了解下
    2023-11-11
  • php.ini?中文版?(PHP7,PHP8)?金步國

    php.ini?中文版?(PHP7,PHP8)?金步國

    php.ini?中文版?(PHP7,PHP8),比較適合使用php7、php8的朋友使用,需要的朋友可以參考下
    2023-09-09
  • php上傳文件并存儲到mysql數(shù)據(jù)庫的方法

    php上傳文件并存儲到mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了php上傳文件并存儲到mysql數(shù)據(jù)庫的方法,以完整實(shí)例形式較為詳細(xì)的分析了php操作文件上傳與數(shù)據(jù)庫存儲的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較

    php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較

    “重載”是類的多態(tài)的一種實(shí)現(xiàn)。函數(shù)重載指一個標(biāo)識符被用作多個函數(shù)名,且能夠通過函數(shù)的參數(shù)個數(shù)或參數(shù)類型將這些同名的函數(shù)區(qū)分開來,調(diào)用不發(fā)生混淆。這樣做的主要好處就是,不用為了對不同的參數(shù)類型或參數(shù)個數(shù),而寫多個函數(shù)。
    2008-09-09

最新評論