본문으로 바로가기

=&란? 참조호출(call by reference)

category 웹코딩/PHP 2016. 9. 30. 22:20


참조(reference)란, 같은 변수의 내용에 붙이는 별명입니다. 일반적으로 '='에서 변수의 대입은 변수값의 복사본이 대입되는데, 이것을 '값 호출(call by value)'이라고 부릅니다. '=&'의 대입은 '참조 호출(call by reference)'이라고 부르고 두 개의 변수가 같은 것을 가리킵니다. 


변수 참조 호출하기

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>참조 호출</title>
</head>
<body>
<div>
<?php
$a = '변경 전';

# 변수값 호출입니다. $b에는 $a의 값이 대입됩니다.
$b = $a;

# 참조 호출입니다. $c와 $a는 같은 값입니다.
$c =& $a;

echo '$a: ' . $a . ' ';
echo '$b: ' . $b . ' ';
echo '$c: ' . $c . '<br>';

$a = '변경 후';

echo '$a: ' . $a . ' ';
echo '$b: ' . $b . ' ';
echo '$c: ' . $c . '<br>';
?>
</div>
</body>
</html>

결과화면


  $c에는 $a가 참조 호출되고 있어서 $a와 $c는 같은 값이 되어 $a의 값을 변경하면 $c의 값도 바뀝니다. 한편 $b는 값 호출(call by value)이므로 $a의 값이 바뀌어도 영향을 주지 않습니다.