$GLOBALS 사용하기, 슈퍼 글로벌 사용법, static 사용법
메모/PHP 2017. 4. 16. 17:45
$GLOBALS 사용하기
함수 안에서 전역 변수를 사용하는 또 하나의 방법은 배열 $GLOBALS를 사용하는 방법입니다.
$GLOBALS는 연관 배열이며 사용법이 약간 특별 합니다. 예를 들어, 사용하고 싶은 전역 변수가 $data라면 함수 안에서 $GLOBALS['data']와 같이 변수명을 키로 사용해 $data의 내용을 참조, 할당할 수있습니다. 결과는 global 선언을 사용한 것과 같습니다. 더구나 이 $GLOBALS는 어디서도 사용할 수 있어 슈퍼 글로벌(Super globals)이라고 부릅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // 전역 변수 $data = 5; function scope_test(){ // 전역 변수를 참조 $GLOBALS['data'] += 1; print $GLOBALS['data']; print "<BR>"; } print $data; print "<BR>"; scope_test(); print $data; print "<BR>"; ?> | cs |
슈퍼 글로벌 사용법
PHP에서 사용할 수 있는 슈퍼 글로벌 변수는 아래 표와 같습니다. 모두 연관 배열로 사용합니다. $_SERVER나 $_ENV는 시스템에 따라 다른 값이 할당됩니다. $_GET과 $_POST는 송신 폼으로부터 값을 받습니다. $_FILES는 업로드된 파일과 이름이 할당됩니다. $_SESSION은 데이터를 가지고 다니기 위해 사용되는 변수입니다. 상세한 내용은 PHP 매뉴얼을 참조합니다.
미리 정의된 변수
변수 |
의미 |
$GLOBALS |
전역 변수 |
$_SEVER |
서버 변수 |
$_ENV |
환경 변수 |
$_COOKIE |
HTTP 쿠키 |
$_GET |
HTTP GET 변수 |
$_POST |
HTTP POST 변수 |
$_FILES |
HTTP 파일 업로드 변수 |
$_REQUEST |
HTTP Request 변수 |
$_SESSION |
Session 변수 |
static 사용법
함수 안에 변수를 그대로 두고 전역 변수처럼 변수를 사용하려면 static을 사용합니다. 예를 들어, 아래 코드를 실행하면 함수 안의 $data가 초기화($data에 0을 할당)되기 때문에 [0]을 5번 표시합니다.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php counter(); counter(); counter(); counter(); counter(); function counter(){ $data = 0; print $data ++; print "<BR>"; }; ?> | cs |
이를 카운팅 동작처럼 1씩 증가하게 변경하기 위해서 함수 안의 $data를 static으로 선언합니다. 이렇게 하면 [counter();]를 호출할 때마다 1씩 더하여 표시됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php counter(); counter(); counter(); counter(); counter(); function counter(){ static $data = 0; print $data ++; print "<BR>"; }; ?> | cs |
'메모 > PHP' 카테고리의 다른 글
배열 연산자 (0) | 2017.03.13 |
---|---|
연습문제 (0) | 2017.02.20 |
[PHP메모] 객체 지향 (0) | 2017.01.15 |
[PHP메모] date 함수(날짜 함수)에 대해 (0) | 2016.11.20 |
[PHP메모] foreach 문 (0) | 2016.11.05 |