2010-01-22 2 views
2

내 클래스에는 멤버 변수 배열 인 items가 있습니다. 정기적으로 배열을 다른 임시 배열의 값으로 재 할당하려면 다음과 같이하십시오.배열을 재 할당하면 사용 된 메모리가 해제됩니까?

$temp = array(); 
$temp[] = new Object(); 
$temp[] = new Object(); 
$temp[] = new Object(); 
... etc. 

$this->items = $temp; 

그래서 메모리 누수가있을 수 있습니까? $ this-> temp의 값을 새로운 값인 $ temp에 재 할당하면 원래 $ this-> temp에있는 모든 항목 (객체가 객체 임)이 여전히 주변에 머 무르거나 해제됩니까?

답변

3

메모리 누수가 발생하지 않습니다. $ temp 및 $ this-> items는 동일한 배열에 대한 참조 일뿐입니다. PHP는 가비지 수집 언어이므로 배열에 대한 참조가 더 이상 없으면 배열이 삭제됩니다 (가비지 수집).

1

그들은 조금 머물 것이다.하지만 PHP에서는 결국 garbage collector에 의해 해제 될 것이다.

+1

Java, C# 및 기타 메모리 관리 언어에서도 마찬가지입니다. 가비지 콜렉터가없는 C/C++의 경우가 아닌 **입니다. 'new' ('malloc()')에 의해 할당 된 메모리는 나중에'delete' ('free()')에 의해 해제되어야합니다 –

관련 문제