PHP 전역 변수 - 슈퍼 전역 변수
PHP에서 미리 정의된 변수 중 다수는 "슈퍼 전역"입니다. 즉, 스크립트의 전체 범위에서 사용할 수 있습니다. 전역 $variable;을 실행하지 않고도 함수나 메서드 내에서 액세스할 수 있습니다.
이러한 슈퍼 전역 변수는 다음과 같습니다.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$ _GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
이 섹션에서는 몇 가지 슈퍼 전역 변수를 소개하고 기타 슈퍼전역 변수는 이후 장에서 설명됩니다.
$GLOBALS — 전역 범위에서 사용할 수 있는 모든 변수를 나타냅니다.
$GLOBALS 이 전역 변수는 PHP 스크립트의 어디에서나(함수 또는 메서드에서) 전역 변수에 액세스하는 데 사용됩니다.
PHP는 모든 전역 변수를 $GLOBALS[index]라는 배열에 저장합니다. 변수의 이름은 배열의 키입니다.
다음 예에서는 슈퍼 전역 변수 $GLOBALS를 사용하는 방법을 보여줍니다.
Instance
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
Running Instance
위 예에서는 이후 z는 $GLOBALS 배열의 변수이므로 함수 외부에서 액세스할 수 있습니다.
PHP $_SERVER
$_SERVER 이 슈퍼글로벌 변수는 헤더, 경로 및 스크립트 위치에 대한 정보를 보유합니다.
다음 예에서는 $_SERVER의 특정 요소를 사용하는 방법을 보여줍니다.
Instance
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
Running Instance
다음 표에는 가장 중요한 항목이 나열되어 있습니다. $_SERVER에서 액세스할 수 있는 요소:
요소/코드 설명
$_SERVER['PHP_SELF'] 현재 실행 중인 스크립트의 파일 이름을 반환합니다.
$_SERVER['GATEWAY_INTERFACE']는 서버에서 사용하는 CGI 사양 버전을 반환합니다.
$_SERVER['SERVER_ADDR']은 스크립트가 현재 실행 중인 서버의 IP 주소를 반환합니다.
$_SERVER['SERVER_NAME']은 스크립트가 현재 실행 중인 서버의 호스트 이름(예: www.w3school.com.cn)을 반환합니다.
$_SERVER['SERVER_SOFTWARE']는 서버 식별 문자열(예: Apache/2.2.24)을 반환합니다.
$_SERVER['SERVER_PROTOCOL'] 페이지가 요청되었을 때 통신 프로토콜의 이름과 버전을 반환합니다(예: "HTTP/1.0").
$_SERVER['REQUEST_METHOD']는 페이지에 액세스하는 데 사용되는 요청 방법(예: POST)을 반환합니다.
$_SERVER['REQUEST_TIME']은 요청이 시작된 타임스탬프를 반환합니다(예: 1577687494).
$_SERVER['QUERY_STRING'] 쿼리 문자열을 통해 이 페이지에 액세스하는 경우 쿼리 문자열을 반환합니다.
$_SERVER['HTTP_ACCEPT'] 현재 요청의 요청 헤더를 반환합니다.
$_SERVER['HTTP_ACCEPT_CHARSET']는 현재 요청(예: utf-8, ISO-8859-1)에서 Accept_Charset 헤더를 반환합니다.
$_SERVER['HTTP_HOST']는 Accept_Charset를 반환합니다. 현재 요청 호스트 헤더의 헤더입니다.
$_SERVER['HTTP_REFERER'] 현재 페이지의 전체 URL을 반환합니다(모든 사용자 에이전트에서 지원되지 않으므로 신뢰할 수 없음).
$_SERVER['HTTPS'] 보안 HTTP 프로토콜을 통해 스크립트를 쿼리할지 여부입니다.
$_SERVER['REMOTE_ADDR'] 현재 페이지를 탐색하는 사용자의 IP 주소를 반환합니다.
$_SERVER['REMOTE_HOST'] 현재 페이지를 탐색하는 사용자의 호스트 이름을 반환합니다.
$_SERVER['REMOTE_PORT'] 웹 서버에 연결하기 위해 사용자 컴퓨터에서 사용되는 포트 번호를 반환합니다.
$_SERVER['SCRIPT_FILENAME']은 현재 실행 중인 스크립트의 절대 경로를 반환합니다.
$_SERVER['SERVER_ADMIN'] 이 값은 Apache 서버 구성 파일의 SERVER_ADMIN 매개변수를 지정합니다.
$_SERVER['SERVER_PORT'] 웹 서버가 사용하는 포트입니다. 기본값은 "80"입니다.
$_SERVER['SERVER_SIGNATURE']는 서버 버전과 가상 호스트 이름을 반환합니다.
$_SERVER['PATH_TRANSLATED'] 현재 스크립트가 있는 파일 시스템의 기본 경로(문서 루트 디렉터리 아님)입니다.
$_SERVER['SCRIPT_NAME']은 현재 스크립트의 경로를 반환합니다.
$_SERVER['SCRIPT_URI']는 현재 페이지의 URI를 반환합니다.
PHP $_REQUEST
PHP $_REQUEST는 HTML 양식으로 제출된 데이터를 수집하는 데 사용됩니다.
아래 예는 입력 필드와 제출 버튼이 있는 양식을 보여줍니다. 사용자가 제출 버튼을 클릭하여 양식 데이터를 제출하면 양식 데이터는