PHP에서 변수에 참조를 할당하는 방법
PHP에서는 참조 할당 연산자인 =&를 사용하여 하나의 변수를 다른 변수에 참조로 할당할 수 있습니다. 참조가 할당된 변수들은 서로 같은 메모리 공간을 가리키기 때문에, 한쪽의 값이 변경되면 다른 쪽의 값도 자동으로 함께 변경됩니다.
기본 문법
$currentValue = &$anyVariableName;
먼저 아래와 같은 값을 가진 변수가 있다고 가정해 보겠습니다.
$nextValue = 100;
여기에 새로운 변수를 만들고 참조를 할당합니다.
$currentValue = &$nextValue;
이제 $currentValue는 $nextValue의 복사본이 아니라, 동일한 값을 공유하는 참조가 됩니다.
예제 코드
<!DOCTYPE html> <html> <body> <?php $nextValue = 100; $currentValue = &$nextValue; echo "Next Value=",$nextValue,"<br>"; echo "Current Value=",$currentValue,"<br>"; $nextValue = 45000; echo "=& 연산자 때문에 next 값이 변경되면 current 값에도 반영됩니다.","<br>"; echo "Next Value=",$nextValue,"<br>"; echo "Current Value=",$currentValue; ?> </body> </html>
실행 결과
Next Value=100 Current Value=100 =& 연산자 때문에 next 값이 변경되면 current 값에도 반영됩니다. Next Value=45000 Current Value=45000
결과 분석
위 예제를 살펴보면 다음과 같은 흐름을 확인할 수 있습니다.
- 처음에
$nextValue에 100을 할당하고,$currentValue에 이를 참조로 할당했습니다. 따라서 두 변수 모두 100을 출력합니다. - 이후
$nextValue의 값을 45000으로 변경하자,$currentValue의 값도 함께 45000으로 바뀌었습니다.
이처럼 =& 연산자로 참조를 할당하면 두 변수는 독립적인 값이 아니라 같은 데이터를 공유하게 됩니다. 일반적인 대입(=)은 값을 복사하지만, 참조 할당은 원본 데이터를 함께 가리키는 것이 핵심 차이점입니다.