PHP의 참조
PHP에서는 한 변수의 값을 다른 변수에 할당할 수 있습니다:
<?php
$num1 = 1;
$num2 = $num1; // 할당
echo $num1; // 1
echo $num2; // 1
?>
이러한 할당 방식에서는 첫 번째 변수의 값이 복사되어 새 변수에 기록됩니다. 이것은 변수들이 서로 연결되어 있지 않으며 독립적으로 변경할 수 있다는 것을 의미합니다. 코드 예제를 살펴보세요:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - 변경되지 않음
?>
그러나 변수의 값을 복사하는 대신 그 값에 대한 참조를 복사하도록 만들 수도 있습니다. 이 경우 한 변수의 값을 변경하면 다른 변수의 값도 변경됩니다.
값을 참조로 전달하려면 변수 이름 앞에 앰퍼샌드를 붙여야 합니다:
<?php
$num1 = 1;
$num2 = &$num1; // 참조로 전달
?>
이제 첫 번째 변수를 변경하면 두 번째 변수도 변경됩니다:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - 변경됨
?>
마찬가지로, 첫 번째 변수를 변경하면 두 번째 변수도 변경됩니다:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
다음 코드 실행 결과를 설명해 보세요:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
다음 코드 실행 결과를 설명해 보세요:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
다음 코드 실행 결과를 설명해 보세요:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
다음 코드 실행 결과를 설명해 보세요:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>