2011-04-06 23 views
11

我有一個關於在PHP函數中使用的變量/數組的問題。執行該函數後,所有變量是否自動取消設置?如果沒有,那麼在執行整個PHP頁面之後,它們何時完全沒有設置?過了一段時間?在函數執行後,PHP函數中使用的變量是否會自動取消設置?

在函數結束時取消設置函數中使用的所有變量以釋放內存有用嗎?

非常感謝您的幫助和評論!

+0

變量在局部範圍是在功能執行(端)銷燬(釋放存儲器)。 – 2011-04-06 04:01:23

+0

謝謝大家的回答。 – Martin 2011-04-06 04:29:02

回答

7

在函數中定義和使用的局部變量在函數執行後不會自動取消設置。而是將它們標記爲由垃圾收集器收集。除非你使用局部變量的定義消耗大量內存,否則實際上並不需要明確地取消它們。讓垃圾收集器完成它的工作。

+0

無論如何要做的手動函數返回之前? – 2015-03-03 18:48:07

+0

http://php.net/manual/en/function.unset.php – 2016-08-02 22:47:50

0

是的,一旦它們的作用域完成(函數返回),它們就會被釋放。

我不認爲他們的內存會自動清除,相反,當需要額外的內存時它們會被清除。

0

是的,任何沒有聲明爲全局INSIDE函數的函數不會在函數外部存在。一旦函數執行完畢,這些值不再存在於mem中。

PHP: Variable Scope