2011-08-22 8 views
0

동일한 변수를 사용하여 많은 이미지를 작성하므로 각 변수가 이전 변수보다 우선합니다. imagedestroy()을 사용해야합니까?이 루프에서 imagedestroy()를 사용해야합니까?

예 :

<?php 

foreach($paths as $path) { 

    $image = imagecreatefrompng($path); 
    //more code... 
    imagedestroy($image); //--------> should i do this? 
} 
imagedestroy($image); //---------> or should i do this? 

답변

2

당신이 을 무엇을하고 있는지에 따라 정확히 당신은 메모리를 확보 한 다음 이미지 공간을 확보하기 위해 루프 내에서 imagedestroy()을 넣어해야합니다. 반면에 그것은 단지 해를 끼치 지 않는다.

+0

그러나 변수를 오버라이드 할 때 나는 그 이미지를 파괴하고 있는가? 아니면 나는 그것을 수동으로 파괴해야합니까? –

+1

의심 스럽지만 수동으로 파괴하십시오. 변수 PHP가 가비지 컬렉터가 실행 되 자마자 관련 리소스를 해제하면 해제되지만, GD 라이브러리/확장이 할당 한 메모리를 즉시 해제 할 것이라고 가정하지는 않습니다. 그 확장의 내부 세부 사항을 아십시오). 그렇지 않으면 참조 (변수)없이 더 이상 이미지를 파괴 할 수 없으므로 메모리 누수가 발생할 수 있습니다. – KingCrunch

관련 문제