Web
Php 분류

PHP 변수의 종류

작성자 정보

  • console 작성
  • 작성일

컨텐츠 정보

본문

변수의 종류

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

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

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

 

1. 지역 변수(local variable)

2. 전역 변수(global variable)

3. 정적 변수(static variable)


지역 변수(local variable)

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

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

 

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

예제

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

코딩연습 ▶

 

위의 예제에서는 함수 밖에서 함수 내부의 지역 변수 var를 참조하려고 합니다.

하지만 함수의 호출이 종료되었으므로, 함수 내부에서 선언된 모든 지역 변수들은 메모리에서 이미 제거되었습니다.

따라서 함수 밖에서 지역 변수를 참조하려고 하면 아무런 값도 얻을 수 없습니다.


전역 변수(global variable)

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

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

 

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

예제

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

코딩연습 ▶

 

위의 예제에서 맨 처음 호출한 echo 함수는 아무런 값도 출력하지 못합니다.

하지만 사용할 전역 변수를 global 키워드로 명시하고 나서 다시 호출한 echo 함수는 정확한 전역 변수의 값을 출력합니다.

 

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

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

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

예제

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

코딩연습 ▶

 

위의 예제는 함수 내부에서 global 키워드를 사용하는 대신에 $GLOBALS 배열을 사용하여 전역 변수에 접근하고 있습니다.


슈퍼 글로벌(superglobal)

PHP는 미리 정의된 전역 변수인 슈퍼 글로벌(superglobal)을 제공합니다.

이러한 슈퍼 글로벌은 특별한 선언 없이 스크립트 내의 어디에서라도 바로 사용할 수 있습니다.

 

PHP에서 제공하는 슈퍼 글로벌은 다음과 같습니다.

 

1. $GLOBALS
2. $_SERVER
3. $_GET
4. $_POST
5. $_FILES
6. $_COOKIE
7. $_SESSION
8. $_REQUEST
9. $_ENV

 

$GLOBALS를 제외한 나머지는 PHP Form 수업과 쿠키와 세션 수업에서 더 자세히 확인할 수 있습니다.

 

PHP Form 수업 확인 =>

쿠키와 세션 수업 확인 =>


정적 변수(static variable)

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

 

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

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

예제

function counter({
    static $count = 0;
    echo "함수 내부에서 호출한 static 변수 count의 값은 {$count}입니다.<br>";
    $count++;
}
counter();
counter();
counter();

코딩연습 ▶

 

위의 예제에서 정적 변수인 $count는 함수의 호출이 종료된 후에도 계속해서 그 값을 유지하고 있습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
Php 24 / 2 페이지
RSS
  • PHP 변수의 종류
    등록자 console
    등록일 01.05 조회 2255

    Php 변수의 종류 PHP에서 변수는스크립트 내 어느 곳에서나 선언할 수 있습니다. 변수의 유효 범위(variable scope)란 특정변수를참조되거나…

  • PHP 변수
    등록자 console
    등록일 01.05 조회 2200

    Php 변수(variable) 변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간입니다. 즉, 변수…

  • PHP 문법
    등록자 console
    등록일 01.05 조회 2258

    Php PHP 코드 영역 PHP 코드는 웹 페이지의 어느 부분에나 위치할 수 있습니다. 따라서 PHP 파서가 PHP 코드를 인식하기 위해서는 그 시작과…

  • PHP 작동원리
    등록자 console
    등록일 01.05 조회 2344

    Php 웹 프로그래밍 언어 웹 시스템 중 서버 측에서 실행되는 서버 사이드 언어를 웹 프로그래밍 언어라고도 부릅니다. 이러한 웹 프로그래밍 언어 중 많…

  • PHP 소개
    등록자 console
    등록일 01.05 조회 2534

    Php PHP란? PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언…

  • PHP 개요
    등록자 console
    등록일 01.05 조회 2236

    Php 웹 시스템(web system) 우리가 매일 사용하고 있는 인터넷을 구성하는 시스템을 웹 시스템(web system)이라고 합니다. 이러한 웹 …

  • php 기초 문법
    등록자 console
    등록일 01.05 조회 2356

    Php 변수 php에서는 데이터형의 선언이 없으며 JavaScript과 같은 var도 없다. 맨 처음에는 $를 붙여서 변수를 선언한다. $msg = "…

  • [그누보드] 그누보드 기초_그누보드 테마의 상수, 파일…
    등록자 console
    등록일 01.04 조회 3383

    Php 1.기본구조 테마에는 상당히 많은 파일이 포함되어 있습니다만 핵심 파일은 head.php, index.php, tail.php 파일입니다. 테마…

  • [그누보드] 그누보드 설치
    등록자 console
    등록일 01.03 조회 2372

    Php 0.1 그누보드 설치전 PHP 5.2.17 이상 (PHP7.2 이상 권장) MySQL 5.0 이상 or MySQL 5.0 이상의 기능을 만족하는…