참조 – 5.참조 삭제

참조 삭제 동작 원리

참조 삭제(unsetting references)하는 것은 변수명과 변수 내용의 연결을 끊어줄 뿐이지 변수 내용 자체를 삭제하지는 않습니다. 따라서 아래와 같이 $a 변수를 삭제하더라도 그 내용은 남아 있기 때문에 $b 변수를 계속 사용할 수 있습니다.

< 참조와 삭제 >

변수명 변수값이 저장된 메모리 주소 설명
$a 0x6000 원본
$b 0x6000 참조

< 심볼 테이블(unset전) >

변수명 변수값이 저장된 메모리 주소 설명
$b 0x6000 참조

< 심볼 테이블(unset후) >

global References

전역변수를 선언하면 이 변수는 자동으로 전역배열 $GLOBALS[]에 참조됩니다. 이것은 마치 아래와 같은 문장를 수행한 것과 같습니다.

  • $var = &$GLOBALS[“var”];

그런데 매뉴얼 설명과는 달리 unset으로 전역변수를 삭제하면 전역배열 $GLOBALS[]의 내용도 함께 삭제되는 것을 확인할 수 있었습니다. 아래의 예제를 참조바랍니다.

실행결과는 아래와 같습니다.

답글 남기기