지역변수란 그 변수가 선언된 곳에서만 사용가능함을 말합니다. 함수나 클레스 안에 선언된 변수가 있다면, 그 함수 안에서만 사용가능하지 함수 밖에서는 사용할 수 없습니다. 반대로 함수 밖에서 선언된 변수를 함수나 클레스 안에서 사용할 수 없습니다.

예제 (ex #1

 <?php
 
function test
() {
    
$foo "local variable"
;

    echo 
'$foo in global scope: ' $var "\n"
;
    echo 
'$foo in current scope: ' $foo "\n"
;
 }
 
$var "Example content"
;
 
test
();
 
 
/* 
 결과
 $foo in global scope: 
 $foo in current scope: local variable
 */
 
?>


지역변수는 한정된 곳에서만 사용할 수 있지만 함수 밖에 선언된 변수를 함수 안에서 사용하고자 한다면 자동 전역변수 $GLOBALSglobal를 정의해 주면 사용할 수 있습니다.

예제 (ex #2

 <?php
 
function test
() {
    global 
$arg
;

    echo 
'$foo in global scope: ' $GLOBALS['var'] . "\n"
;
    echo 
'$foo in current scope: ' $arg "\n"
;
 }
 
$var "Example content"
;
 
$arg "local variable"
;
 
test
();
 
 
/* 
 결과
 $foo in global scope: Example content
 $foo in current scope: local variable
 */
 
?>


$GLOBALS에는 사용자 변수 뿐 아니라 슈퍼전역변수(미리선언된 변수)도 정의되어 있음을 알아야 합니다.

 슈퍼전역 변수
 $HTTP_*_VARS
 $_SERVER 
 $_GET 
 $_POST 
 $_FILES 
 $_COOKIE 
 $_SESSION 
 $_REQUEST 
 $_ENV 

예제 (ex #3

 <?php
 
echo $GLOBALS['_SERVER']['HTTP_ACCEPT_LANGUAGE']; 
// 결과: ko
 
echo $GLOBALS['_SERVER']['HTTP_HOST']; 
// 결과: 127.0.0.1
 
echo $GLOBALS['_SERVER']['PHP_SELF']; 
// 결과: test.php
 
?>


관련글: 2011/06/10 - [phP 들어가기/phP입문/변수 기초] - 자동전역변수 #2
           2011/05/31 - [phP 들어가기/phP입문/변수 기초] - 외부변수의 이해
           2011/04/09 - [phP 들어가기/phP입문/변수 기초] - CGI 환경 변수
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요