참조 해제

참조 해제

이 페이지에서는 unset()으로 참조를 해제했을 때 어떤 일이 일어나는지 설명해요. 참조를 끊어도 변수 내용 자체가 파괴되지는 않는다는 점이 핵심입니다.

출처: Unsetting References

본문

참조를 해제하면, 그저 변수 이름과 변수 내용 사이의 바인딩을 끊을 뿐이에요. 변수 내용이 파괴된다는 뜻은 아니랍니다. 예를 들어 볼게요.

<?php

$a = 1;
$b =& $a;
unset($a);
var_dump($a);
var_dump($b);

이 예시를 유닉스의 unlink 호출에 비유해 생각해 보면 이해가 쉬울 거예요. unset($a)$a라는 이름과 내용의 연결만 끊지, 그 내용(파일)을 지우는 게 아니죠. 그래서 여전히 $var b는 그 내용을 가리키고 있습니다.

더 알아보기