欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂PHP培訓(xùn)總結(jié)PHP內(nèi)存釋放以及垃圾回收

2018-05-14 14:13:41 1407瀏覽

如今實(shí)用PHP開發(fā)技術(shù)的人越來越多,因此關(guān)于PHP寫程序的小技巧,關(guān)于內(nèi)存釋放以及垃圾回收的相關(guān)問題是很多PHP開發(fā)工程師比較感興趣的,本篇文章小編就帶大家看一下以上的問題吧,喜歡PHP開發(fā)或者是想要參加

PHP培訓(xùn)的小伙伴可以學(xué)習(xí)一下。

扣丁學(xué)堂PHP培訓(xùn)總結(jié)PHP內(nèi)存釋放以及垃圾回收


引用賦值


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


上述代碼中,我將一個(gè)字符串賦值給變量a,然后將a的引用賦值給了變量b。顯然,這個(gè)時(shí)候的內(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' 這個(gè)字符串從內(nèi)存中釋放掉。我是這么做的:


unset($a);


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


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


'apple' <- $b


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



直接回收


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


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


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


$a = null;


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



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


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



以上就是給大家分享的PHP內(nèi)存釋放以及垃圾回收問題,想要了解更多PHP相關(guān)內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)查詢,扣丁學(xué)堂不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的PHP視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)習(xí)PHP的小伙伴快選擇專業(yè)的PHP在線學(xué)習(xí)機(jī)構(gòu)扣丁學(xué)堂學(xué)習(xí)吧??鄱W(xué)堂PHP技術(shù)交流群:374332265。


扣丁學(xué)堂微信公眾號(hào)

【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>



標(biāo)簽: 扣丁學(xué)堂PHP培訓(xùn)總結(jié)PHP內(nèi)存釋放以及垃圾回收 PHP培訓(xùn) PHP在線學(xué)習(xí) PHP基礎(chǔ)教程 PHP入門視頻

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部