변수의 종류

유영·2023년 3월 2일
0

PHP

목록 보기
3/57

변수의 종류

PHP에서 변수는 스크립트 내 어느 곳에서나 선언할 수 있습니다.

변수의 유효 범위(variable scope)란 특정 변수를 참조되거나 사용할 수 있는 스크립트 내의 범위를 의미합니다.

PHP에서는 이러한 변수의 유효 범위에 따라 변수의 종류를 다음과 같이 구분합니다.

  1. 지역 변수(local variable)
  2. 전역 변수(global variable)
  3. 정적 변수(static variable)

지역 변수(local variable)

함수 내부에서 선언된 변수는 오직 함수 내부에서만 접근할 수 있습니다.

또한, 함수 내부에서 선언된 변수는 함수의 호출이 종료되면 메모리에서 제거됩니다.

이렇게 함수 내부에서 선언된 변수를 지역 변수(local variable)라고 합니다.

전역 변수(global variable)

함수 밖에서 선언된 변수는 함수 밖에서만 바로 접근할 수 있습니다.

함수 밖에서 선언된 변수를 함수 내부에서 접근하고자 할 때는 global 키워드를 함께 사용해야 합니다.

이렇게 함수 밖에서 선언된 변수를 전역 변수(global variable)라고 합니다.

$var = 10;// 전역 변수로 선언함
function varFunc() {
    echo "함수 내부에서 호출한 전역 변수 var의 값은 {$var}입니다.
   global $var; // 함수 내에서 사용할 전역 변수를 명시함
   echo "함수 내부에서 호출한 전역 변수 var의 값은 {$var}입니다.
}
varFunc();
echo "함수 밖에서 호출한 전역 변수 var의 값은 {$var}입니다."; 

PHP는 모든 전역 변수를 $GLOBALS 배열에 저장합니다.

이 배열에 인덱스로 변수의 이름을 사용하면, 해당 전역 변수의 값에 접근할 수 있습니다.

이 배열은 함수 내부에서도 접근할 수 있으며, 이 배열을 통해 바로 전역 변수의 값을 변경할 수도 있습니다.

$var = 10; // 전역 변수로 선언함
function varFunc() {
    echo "함수 내부에서 호출한 전역 변수 var의 값은 {$var}입니다.<br>";
    echo "함수 내부에서 호출한 전역 변수 var의 값은 {$GLOBALS['var']}입니다.<br>";
}
varFunc();
echo "함수 밖에서 호출한 전역 변수 var의 값은 {$var}입니다.";

슈퍼 글로벌(superglobal)

PHP는 미리 정의된 전역 변수인 슈퍼 글로벌(superglobal)을 제공합니다.
이러한 슈퍼 글로벌은 특별한 선언 없이 스크립트 내의 어디에서라도 바로 사용할 수 있습니다. PHP에서 제공하는 슈퍼 글로벌은 다음과 같습니다.
1. $GLOBALS
2. $_SERVER
3. $_GET
4. $_POST
5. $_FILES
6. $_COOKIE
7. $_SESSION
8. $_REQUEST
9. $_ENV

정적 변수(static variable)

정적 변수(static variable)란 함수 내부에서 static 키워드로 선언한 변수를 의미합니다.

함수 내부에서 선언된 정적 변수는 함수의 호출이 종료되더라도 메모리상에서 사라지지 않습니다.

하지만 지역 변수처럼 해당 함수 내부에서만 접근할 수 있습니다.

0개의 댓글