亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP內存釋放以及垃圾回收的示例分析

發布時間:2021-08-31 09:54:48 來源:億速云 閱讀:111 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“PHP內存釋放以及垃圾回收的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PHP內存釋放以及垃圾回收的示例分析”這篇文章吧。

引用賦值

$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內存釋放以及垃圾回收的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

抚顺市| 余庆县| 黑河市| 洪泽县| 广东省| 兰西县| 秦安县| 文昌市| 塘沽区| 若羌县| 屏山县| 杭锦旗| 曲阜市| 长海县| 横峰县| 耒阳市| 兴义市| 基隆市| 襄垣县| 辉南县| 射阳县| 明光市| 铜鼓县| 巢湖市| 周口市| 余江县| 遵化市| 汽车| 宜兰市| 嵩明县| 扶绥县| 株洲市| 乐平市| 昌平区| 京山县| 南汇区| 侯马市| 崇州市| 穆棱市| 方城县| 延安市|