PHP 글로벌 변수 - 슈퍼 글로벌 변수
슈퍼 글로벌 변수는 PHP 4.1.0에서 도입되었으며, 전체 범위에서 항상 사용할 수 있는 내장 변수입니다。
PHP 글로벌 변수 - 슈퍼 글로벌 변수
PHP에서 많은 предопределенные 변수는 “슈퍼 글로벌”입니다. 이는 이 스크립트의 전체 범위에서 사용할 수 있다는 의미입니다. 함수나 메서드에서 global $variable;를 실행하지 않아도 접근할 수 있습니다。
이 슈퍼 글로벌 변수는 다음과 같습니다:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
이 장에서는 몇 가지 슈퍼 글로벌 변수를 소개하고, 나중 장에서는 다른 슈퍼 글로벌 변수를 설명할 것입니다。
$GLOBALS — 전체 범위에서 사용할 수 있는 모든 변수를 참조
$GLOBALS이란 글로벌 변수는 PHP 스크립트의 어느 위치에서든 글로벌 변수에 접근하는 데 사용됩니다(함수나 메서드에서도 가능합니다)。
PHP는 $GLOBALS[index]라는 배열에 모든 글로벌 변수를 저장합니다. 변수 이름은 배열의 키입니다。
아래의 예제에서는 슈퍼 글로벌 변수 $GLOBALS를 사용하는 방법을 보여줍니다:
예제
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
위의 예제에서는 z가 $GLOBALS 배열의 변수이기 때문에 함수 외에서도 접근할 수 있습니다。
PHP $_SERVER
$_SERVER이란 슈퍼 글로벌 변수는 헤더, 경로 및 스크립트 위치에 대한 정보를 저장합니다。
아래의 예제에서는 $_SERVER에 있는 몇 가지 요소를 사용하는 방법을 보여줍니다:
예제
<?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']; ?>
아래 표는 $_SERVER에서 접근할 수 있는 가장 중요한 요소를 나열합니다:
요소/코드 | 설명 |
---|---|
$_SERVER['PHP_SELF'] | 현재 실행되는 스크립트의 파일 이름을 반환합니다. |
$_SERVER['GATEWAY_INTERFACE'] | 서버가 사용하는 CGI 규범의 버전을 반환합니다. |
$_SERVER['SERVER_ADDR'] | 현재 스크립트가 실행되는 서버의 IP 주소를 반환합니다. |
$_SERVER['SERVER_NAME'] | 현재 스크립트가 실행되는 서버의 호스트 이름을 반환합니다. (예: www.codew3c.com) |
$_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'] | 현재 요청의 Accept_Charset 헤더를 반환합니다. (예: utf-8, ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 현재 요청의 Host 헤더를 반환합니다. |
$_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 양식 제출 데이터를 수집하는 데 사용됩니다。
다음 예제는 입력 필드와 제출 버튼을 포함한 양식을 보여줍니다. 사용자가 제출 버튼을 클릭하여 양식 데이터를 제출하면, 양식 데이터는 <form> 태그의 action 속성에 지정된 스크립트 파일로 전송됩니다. 이 예제에서는 파일 자체를 양식 데이터를 처리하기 위해 지정했습니다. 다른 PHP 파일을 사용하여 양식 데이터를 처리하려면 선택한 파일 이름을 변경하십시오. 그런 다음, 입력 필드의 값을 수집하기 위해 전역 변수 $_REQUEST를 사용할 수 있습니다:
예제
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 이름: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST는 method="post"의 HTML 양식을 제출한 후 양식 데이터를 수집하는 데 널리 사용됩니다. $_POST는 또한 변수 전달에도 사용됩니다。
다음 예제는 입력 필드와 제출 버튼을 포함한 양식을 보여줍니다. 사용자가 제출 버튼을 클릭하여 데이터를 제출하면, 양식 데이터는 <form> 태그의 action 속성에 지정된 파일로 전송됩니다. 이 예제에서는 파일 자체를 양식 데이터를 처리하기 위해 지정했습니다. 다른 PHP 페이지를 사용하여 양식 데이터를 처리하려면 선택한 파일 이름을 변경하십시오. 그런 다음, 입력 필드의 값을 수집하기 위해 전역 변수 $_POST를 사용할 수 있습니다:
예제
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 이름: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_GET
PHP $_GET는 HTML 양식 (method="get")을 제출한 후의 양식 데이터를 수집하는 데도 사용될 수 있습니다.
$_GET는 URL에 포함된 전송된 데이터를 수집할 수도 있습니다.
매개변수를 포함한 페이지가 있다고 가정해 보겠습니다:
<html> <body> <a href="test_get.php?subject=PHP&web=codew3c.com">테스트 $GET</a> </body> </html>
사용자가 "테스트 $GET" 링크를 클릭하면, "subject"과 "web" 매개변수가 "test_get.php"로 전송되고, 그런 다음 이 값을 "test_get.php"에서 $_GET를 통해 접근할 수 있습니다.
아래의 예제는 "test_get.php" 파일 내의 코드입니다:
예제
<html> <body> <?php echo "\" . $_GET['web'] . "에서 " . $_GET['subject'] . "를 학습하세요"; ?> </body> </html>
추천:당신은 PHP 양식 이 섹션에서는 $_POST와 $_GET에 대해 더 많은 지식을 배울 수 있습니다.