참조 알아차리기

참조 알아차리기

이 페이지에서는 PHP 코드 곳곳에 숨어 있는 참조(reference) 사용 지점을 알아보는 방법을 설명해요. 참조 메커니즘으로 구현된 여러 문법 구조와, 그중 global 참조의 동작 방식을 살펴봅니다.

출처: Spotting References

본문

PHP의 많은 문법 구조가 참조 메커니즘을 통해 구현되어 있어요. 그래서 앞서 설명한 참조 바인딩에 관한 모든 내용이 이 구조들에도 그대로 적용됩니다. 참조로 전달하거나 참조로 반환하는 것 같은 일부 구조는 앞에서 이미 언급했죠. 참조를 사용하는 다른 구조들도 있어요.

global 참조

변수를 global $var로 선언하면, 사실상 전역 변수에 대한 참조를 만드는 것과 같아요. 즉 다음 코드와 동일합니다.

<?php
$var =& $GLOBALS["var"];

또한 이는 $var를 해제해도 전역 변수가 해제되지는 않는다는 뜻이기도 해요.

더 알아보기