강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

[php] 미리 선언된 변수 - php 슈퍼전역변수
작성자 : 13 김영철
등록날짜 : 2009.01.13 23:03
1,545

미리 선언된 변수

PHP는 실행되는 스크립트에 적용이되는 상당량의 미리 선언된 변수를 제공한다. 하지만, 이 변수의 대부분은 운영되는 서버, 서버의 버전, 서버의 설정, 다른 팩터와 관련되어 있어서 완벽하게 문서화되지 않았다. 이 중 몇개의 변수는 커맨드 라인에서 실행되는 PHP에서는 유효하지 않다. 예약된 미리 선언된 변수의 섹션을 참고.

주의

PHP 4.2.0 이후 버전부터, PHP 디렉티브 register_globals의 기본값은 off가 되었다. register_globals를 off로 놓으면, 전역 유효영역안의 미리 선언된 변수 집합들에 영향을 미친다. 예를 들면, DOCUMENT_ROOT값을 얻기 위해서는 $DOCUMENT_ROOT 대신에 $_SERVER['DOCUMENT_ROOT']를, http://www.example.com/test.php?id=3에서 $id 대신에 $_GET['id']를, $HOME 대신에 $_ENV['HOME']을 사용해야 한다.

이와 관련된 변경사항은 register_globals의 설정 엔트리를 읽거나, 전역 등록 사용하기에 관한 보안 챕터는 물론, 4.1.04.2.0 Release Announcements도 참고하기 바란다.

superglobal arrays와 같은 가용한 PHP의 예약된 미리 선언된 변수를 사용하는 것을 추천한다.

4.1.0 버전 이후에, PHP는 웹서버, 환경, 유저 입력과 관련된 미리 선언된 배열 변수 집합을 추가적으로 제공한다. 이 새로운 배열은 자동적으로 전역화되기 때문에 더 특별해진다. 즉, 자동적으로 모든 유효영역안에서 적용이 가능하다. 이런 이유로, 이런 변수를 '자동전역변수' 또는 '슈퍼전역변수' 이라고 불리기도 한다. (PHP에서는 사용자-선언 슈퍼전역변수가 허용되지 않는다.) 슈퍼전역변수는 아래에 열거한다. 하지만, 이 변수 목록과 논의는 예약된 미리선언된 변수섹션을 참고한다. 또한 구버전의 미리선언된 변수($HTTP_*_VARS)가 아직도 존재한다는 것에 주의한다. PHP 5.0.0부터, 긴 형태의 PHP 예약 변수 배열을 register_long_arrays 지시어로 비활성화할 수 있습니다.

가변 변수: 슈퍼전역변수는 가변 변수로는 쓰일수 없다.

variables_order내의 특정 변수들이 설정되어있지 않으면, 적합한 PHP의 미리선언된 배열도 비워있게 된다.

PHP 슈퍼전역변수

$GLOBALS

스트립트의 전역 유효영역에서 쓸수있는 모든 변수에 대한 참조를 포함한다. 이 배열의 key는 전역 변수들의 이름이다. PHP 3 이래로 $GLOBALS가 존재해왔다.

$_SERVER

웹서버나, 현재 스크립트의 실행환경에 직접적으로 관련되어 설정되는 변수이다. 구버전의 $HTTP_SERVER_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_GET

HTTP GET에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_GET_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_POST

HTTP POST에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_POST_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_COOKIE

HTTP 쿠키에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_COOKIE_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_FILES

HTTP post 파일 업로드에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_POST_FILES 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다). 더 자세한 정보는 POST 메소드 업로드를 참고하도록 한다.

$_ENV

환경에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_ENV_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_REQUEST

GET, POST, COOKIE 입력 메카니즘을 통해 스크립트로 제공되는 변수이다. 이 메카니즘은 신용될수는 없다. 이 배열 안에 포함된 존재하는 변수와 변수의 나열 순서는 PHP variables_order 설정 디렉티브에 의해 정의된다. 이 배열은 PHP 4.1.0 이전 버전에서 동일한 변수가 존재하지 않는다. import_request_variables()도 참고.

경고

PHP 4.3.0이후, $_REQUEST 안에 FILE 정보를 갖는 $_FILES 변수가 존재하지 않게 되었다.

참고: 커맨드 라인에서 수행될때, 이 변수는 argvargc 엔트리에 포함되지 않는다; 이 변수들은 $_SERVER 배열에 존재한다.

$_SESSION

스크립트의 세션에 등록되는 변수이다. 구버전의 $HTTP_SESSION_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다). 더 자세한 정보는 Session handling functions섹션을 참고.


 

 

 

출처: http://www.php.net/variables.predefined

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3075 자주사용하는 php용어 99 단국강토 01.03 1544
열람중 [php] 미리 선언된 변수 - php 슈퍼전역변수 13 김영철 01.13 1546
3073 플래시 파일을 가볍게 만듭시다. 99 단국강토 02.19 1547
3072 php 세션css 13 김영철 01.13 1548
3071 gnuboard4 setting for DB before install 13 김영철 01.13 1548
3070 폼을 통해서 값을 전달 13 김영철 01.14 1549
3069 타임라인의 이해 99 단국강토 02.19 1550
3068 reset , foreach 13 김영철 01.13 1550
3067 첨부파일 보내는 폼메일 13 김영철 01.13 1552
3066 URL 유효성 체크 ( 도메인 유효 ) 13 김영철 01.14 1555
3065 배열 검색 13 김영철 01.14 1557
3064 MSSQL Server DBA 가이드-3 M 최고의하루 12.26 1557
3063 PHP 성능 튜닝 관련 글 13 김영철 01.14 1558
3062 PHP DB 관련 함수 설명 13 김영철 01.13 1559
3061 redirction 하는 방법 13 김영철 01.15 1559
3060 MsSql 날짜 함수 99 단국강토 01.02 1559
3059 [hatelove님의 JBBS 알고리즘 강좌 3] 13 김영철 01.14 1561
3058 PHP 함수 정리 13 김영철 01.15 1561
3057 HTML 태그 제거 스크립트 13 김영철 01.13 1561
3056 MSSQL Server DBA 가이드-3 M 최고의하루 12.26 1561
3055 PEAR XML_Parser 를 이용한 간단한 일기예보 13 김영철 01.14 1562
3054 페이징 - 잘설명 13 김영철 01.13 1565
3053 명령어정리 13 김영철 01.23 1565
3052 자바스크립 정규식 99 단국강토 02.09 1566
3051 확장자로 해당 파일의 mime 타입 13 김영철 01.14 1568
3050 MSSQL DBA GUIDE - 테이블 관리 13 김영철 01.23 1568
3049 플래시로 3차원 환영은 어떻게 그리나?(4) 99 단국강토 02.09 1571
3048 웹서버의 운영체제, 아파치버전, php버전, 아이피 조회하기 13 김영철 01.14 1571
3047 데이터베이스의 저장 프로시저를 자동으로 생성 M 최고의하루 12.24 1571
3046 FLV 만들기 99 단국강토 02.16 1572
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취