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에 대해 더 많은 지식을 배울 수 있습니다.