06. PHP 변수의 종류
변수의 종류
PHP에서 변수는 스크립트 어느곳에서 선언이 가능하다.
변수의 종류는 변수의 스코프 즉, 참조범위 따라서 아래와 같이 3가지로 분류한다.
1. 지역 변수(local variable)
2. 전역 변수(global variable)
3. 정적 변수(static variable)
4. 슈퍼글로벌 변수(superglobal variable)
1. 지역변수(local variable)
대개, 함수내부에서 선언하는 변수로 함수 내부에서만 접근이 가능한 변수이다.
함수 내부에서 선언한 변수는 함수호출이 종료와 즉시 변수가 사라진다.(메모리에서 제거된다)
1
2
3
4
5
6
7
8
|
<?php
function exFunction() {
$var = 10; // 함수내에 선언된 변수로 지역변수이다.
echo "함수 내부에서 선언한 변수의 값은 {$var}입니다.<br>";
}
exFunction();
echo "함수 밖에서 호출한 지역 변수 var의 값은 {$var}입니다.";
?>
|
cs |
지역변수를 함수외부에서 호출하게 되면 이처럼 에러를 발생시킨다
2. 전역변수(global variable)
함수밖에서 선언된 변수로 함수밖에서만 접근이 가능하다.
1
2
3
4
5
6
7
8
|
<?php
$var = 10;
function exFunction() {
echo "함수 내부에서 선언한 변수의 값은 {$var}입니다.<br>";
}
exFunction();
echo "함수 밖에서 호출한 지역 변수 var의 값은 {$var}입니다.";
?>
|
cs |
전역변수를 함수내부에서 호출하면 위와 같은 에러를 발생시킨다.
함수밖에서 선언된 함수를 이용하기 위해서는 변수앞에 "global"이라고 선언해주어야 한다.
1
2
3
4
5
6
7
8
9
|
<?php
$var = 10;
function exFunction() {
global $var;
echo "함수 내부에서 선언한 변수의 값은 {$var}입니다.<br>";
}
exFunction();
echo "함수 밖에서 호출한 지역 변수 var의 값은 {$var}입니다.";
?>
|
cs |
3. 정적 변수(static variable)
정적변수는 함수 내부에서 static이라는 키워드를 사용해 선언한 변수를 말한다.
정적변수로 선언된 변수는 함수의 호출이 종료되어도 메모리에서 사라지지 않는다.
1
2
3
4
5
6
7
8
9
10
|
<?php
function plus() {
static $number = 0;
echo "number의 값은 {$number}입니다.<br>";
$number++;
}
plus();
plus();
plus();
?>
|
cs |
static이라는 키워드를 적어줌으로써 함수종료시에도 변수값이 사라지지 않아 숫자가 느는것을 확인할 수 있다.
stiatic이 없으면 지역변수되어 숫자가 늘지 않는다.
1
2
3
4
5
6
7
8
9
10
|
<?php
function plus() {
$number = 0;
echo "number의 값은 {$number}입니다.<br>";
$number++;
}
plus();
plus();
plus();
?>
|
cs |
4. 슈퍼글로벌 변수(superglobal variable)
PHP에는 슈퍼글로벌 변수라고 해서 미리 정의된 전역변수가 존재한다.
슈퍼글로벌 변수는 선언하지 않고 바로 사용이 가능하다.
슈퍼글로벌 변수는 아래와 같이 9개가 존재한다.
1. $GLOBALS
2. $_SERVER
3. $_GET
4. $_POST
5. $_FILES
6. $_COOKIE
7. $_SESSION
8. $_REQUEST
9. $_ENV