PHP에서는 달러($) 기호를 활용한 두 가지 연산 방식이 있습니다. 바로 일반적인 $ 연산자와, 가변 변수를 만들 때 사용하는 $$ 연산자입니다. 이 글에서는 두 연산자의 차이점과 실제 동작 원리를 예제와 함께 자세히 살펴보겠습니다.
$ 연산자란?
$ 연산자는 PHP에서 변수를 선언하고 정의할 때 사용되는 기본 연산자입니다. 예를 들어 $message처럼 작성하면 'message'라는 이름의 변수가 생성됩니다. 이렇게 만든 변수에는 정수(int), 문자열(string), 배열(array) 등 PHP에서 지원하는 모든 타입의 값을 저장할 수 있습니다.
$$ 연산자란?
$$ 연산자는 가변 변수(Variable Variables)라고 불리는 특수한 문법입니다. 한 변수에 저장된 값을 또 다른 변수의 이름으로 사용하여, 그 변수에 접근할 수 있게 해줍니다.
쉽게 말해, $a = "b";일 때 $$a는 $b와 동일하게 동작합니다. 이러한 특성 덕분에 코드를 유연하게 작성할 수 있지만, 과도하게 사용하면 가독성이 떨어질 수 있으므로 적절히 활용하는 것이 좋습니다.
예제 코드
다음 예제는 '$'와 '$$' 연산자의 차이를 보여주는 대표적인 코드입니다.
<!DOCTYPE html>
<html>
<head>
<title>PHP Example</title>
</head>
<body>
<?php
// $welcome 변수에 "message"라는 문자열 저장
$welcome = "message";
// $message 변수에 환영 메시지 저장
$message = "Welcome to Tutorialspoint";
echo $welcome; // 출력 결과: message
print("<br/>");
echo $$welcome; // 출력 결과: Welcome to Tutorialspoint
?>
</body>
</html>실행 결과
message Welcome to Tutorialspoint
동작 원리 상세 분석
위 코드의 실행 흐름을 단계별로 살펴보겠습니다.
먼저 echo $welcome;은 변수 $welcome에 저장된 값인 문자열 "message"를 그대로 출력합니다.
반면 echo $$welcome;은 다르게 동작합니다. PHP는 먼저 $welcome의 값인 "message"를 확인한 뒤, 이를 변수 이름으로 해석하여 $message에 접근합니다. 따라서 $message에 저장된 값인 "Welcome to Tutorialspoint"가 최종적으로 출력됩니다.
정리
$ 연산자는 변수 자체를 선언하거나 참조할 때 사용하고, $$ 연산자는 변수의 값을 새로운 변수 이름으로 활용하는 가변 변수 문법입니다. 두 연산자의 차이를 정확히 이해하면 PHP 코드의 유연성을 높이는 데 큰 도움이 됩니다.