2011-04-04 47 views
3

以前我在iPhone開發中使用過Objective-C。看來我需要在後端網站上做一些工作,我選擇了PHP。在Objective-C中,我需要在使用它們之後釋放對象。我是否也需要在PHP中執行此操作?謝謝。我是否需要在php中釋放對象?

回答

8

99.9%的時間,沒有你不需要刪除的對象。 PHP有一個垃圾收集器可以爲你處理。一旦垃圾收集器不再需要你的代碼,垃圾回收器就會釋放給定的內存實例。

要了解更多:

http://php.net/manual/en/features.gc.php

0

不是爲了記憶,PHP使用垃圾收集。對象在某些點無法訪問時發佈(而不是,因爲一些簡化的介紹聲明)到您的代碼。這包括幾個版本(參考文獻b,b參考文獻a)之前的參考循環 - 之前,它僅使用參考計數,因此在面對這樣的循環時失敗。

資源(文件,數據庫連接等)在收集時可能會被關閉,但由於收集時間是非確定性的,它是否關閉取決於所討論的資源,所以它可能是非常糟糕的主意,當你完成他們的時候就離開他們。

0

號你不知道! Php有一個garbage collector爲您處理內存處理。

+0

我非常懷疑'unset'會強制破壞。即使它觸發了一個GC循環(再一次,非常糟糕),我知道沒有GC'd語言允許(除了D,GC明確是可選的)刪除一個對象時,它仍然被引用,因爲這會破壞50%的內容使GC有用(沒有懸掛指針)。 – delnan 2011-04-04 15:10:42

+0

可能unset()不會立即釋放內存,因爲它會發送[myObj release]消息。但它是最接近發佈消息的東西,我知道在PHP – 2011-04-04 15:16:05

+0

事情是,沒有任何純粹的GC'd語言這樣的事情。甚至沒有接近。告訴人們這很接近它是有害的(他們會將它垃圾郵件並且使他們的代碼無法讀取),告訴他們這就是(像你一樣),這顯然是錯誤的。 – delnan 2011-04-04 15:18:59

相關問題