PHP/PHP 문법 & 기본기 정리

PHP 변수의 유효범위(Scope)와 static 키워드

backend.log 2025. 4. 18. 18:00
728x90
반응형

📌 PHP 변수의 유효범위(Scope)와 static 키워드

PHP에서 변수의 유효범위(Scope)는 해당 변수를 사용할 수 있는 코드의 영역을 의미합니다. 변수의 범위를 명확히 이해하면 코드 오류를 방지하고 함수 내부/외부에서의 데이터 흐름을 잘 제어할 수 있습니다.


🔷 변수의 주요 유효범위

  • Global (전역): 함수 외부에서 선언된 변수
  • Local (지역): 함수 내부에서 선언된 변수
  • Static: 함수 내에서 선언되지만 호출 간 값을 유지

✔️ 전역 변수 (Global)

<?php
$a = 10;

function test() {
    echo $a; // 오류 발생: 함수 내부에서 외부 변수 접근 불가
}
test();
?>

전역 변수는 함수 내에서 직접 사용할 수 없습니다. global 키워드를 사용해야 합니다.

<?php
$a = 10;

function test() {
    global $a;
    echo $a; // 출력: 10
}
test();
?>

✔️ 지역 변수 (Local)

<?php
function localTest() {
    $msg = "Hello";
    echo $msg;
}
localTest();
echo $msg; // 오류 발생: 함수 밖에서는 $msg 접근 불가
?>

지역 변수는 함수 내부에서만 유효합니다.


🔷 static 키워드

함수가 여러 번 호출될 때, 지역 변수는 기본적으로 초기화됩니다. static 키워드를 사용하면 이전 값을 유지할 수 있습니다.

<?php
function counter() {
    static $count = 0;
    $count++;
    echo $count . "<br>";
}

counter(); // 1
counter(); // 2
counter(); // 3
?>

static 변수는 함수가 끝나더라도 값이 초기화되지 않고 유지됩니다.


🔷 슈퍼 전역 변수 (Superglobals)

PHP에는 모든 범위에서 접근 가능한 슈퍼 전역 변수가 존재합니다.

  • $_GET, $_POST: 폼 데이터 수신
  • $_SESSION, $_COOKIE: 사용자 상태 관리
  • $_SERVER, $_FILES: 서버 정보 및 파일

✅ 요약

  • Global: 함수 외부 변수, 함수 내에서 사용 시 global 필요
  • Local: 함수 내부 변수, 함수 외부에서는 접근 불가
  • static: 함수 내 변수 값 유지
  • Superglobals: 전역적으로 사용 가능한 내장 배열

📚 전체 글

🧩 PHP 문법 & 기본기 정리 시리즈 전체 보기

 

728x90
반응형