지역변수는 그 변수가 선언된 곳에서만 사용할 수 있습니다.
함수나 클레스 안에 선언된 변수가 있다면, 그 함수 안에서만 사용가능하지 함수 밖에서는 사용할 수 없는 것을 지역변수라 부릅니다. 반대로 함수 밖에서 선언된 변수를 함수나 클레스 안에서 사용할 수 없습니다.
<?php
function test() {
$foo = "local variable";
echo '$foo in global scope: ' . $var . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}
$var = "Example content";
test();
?>
지역변수는 사용이 한정되어 있지만 함수 밖에 선언된 변수를 함수 안에서 사용하고자 한다면 자동 전역변수 $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();
?>
$GLOBALS에는 사용자 변수 뿐 아니라 슈퍼전역변수(미리 선언된 변수)도 저장되어 있습니다.
슈퍼 전역변수 |
---|
$HTTP_*_VARS; |
---|
$_SERVER |
---|
$_GET |
---|
$_POST |
---|
$_FILES |
---|
$_COOKIE |
---|
$_COOKIE |
---|
$_REQUEST |
---|
$_ENV |
---|
<?php
echo $GLOBALS['_SERVER']['HTTP_ACCEPT_LANGUAGE'];
echo $GLOBALS['_SERVER']['HTTP_HOST'];
echo $GLOBALS['_SERVER']['PHP_SELF'];
?>