Do I need to worry about memory leaks with PHP? In particular, I have the following code that is being called from a browser. When the call finishes, is everything cleaned up properly, or, do I need to clear the memory created by the first array that was created?
class SomeClass
{
var $someArray = array();
function someMethod()
{
$this->someArray[1] = "Some Value 1";
$this->someArray[2] = "Some Value 2";
$this->someArray[3] = "Some Value 3";
$this->someArray = array();
$this->someArray[1] = "Some other Value";
$this->someArray[2] = "Some other Value";
$this->someArray[3] = "Some other Value";
}
}
someMethod();
Thanks,
Scott
It’s possible to have a cyclic reference in PHP where the
refcountof thezvalnever drops to0. This will cause a memory leak (GC won’t clean up objects that have a reference to them). This has been fixed in >= PHP 5.3.PHP scripts have a request lifecycle (run application, return response, close application), so it shouldn’t be a worry. All memory used by your application should be marked as free’d when your application finishes, ready to be overwritten on the next request.