Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 $와 $$ 연산자의 차이점 완벽 정리

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 코드의 유연성을 높이는 데 큰 도움이 됩니다.