지역변수는 그 변수가 선언된 곳에서만 사용할 수 있습니다.

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

<?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 
 */ 
 ?>

지역변수는 사용이 한정되어 있지만 함수 밖에 선언된 변수를 함수 안에서 사용하고자 한다면 자동 전역변수 $GLOBALS 나 global 를 정의해 주면 됩니다.

<?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
$_COOKIE
$_REQUEST
$_ENV

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

0 댓글