PHP 슈퍼 전역 변수는 모든 범위에서 액세스할 수 있는 내장 변수입니다.
PHP 슈퍼 글로벌스 (PHP 슈퍼 글로벌스)
이번 강의에서는 예제를 통해 PHP의 모든 슈퍼 전역 변수를 설명하겠습니다. 알아보려면 계속 읽어보세요.
PHP 슈퍼 글로벌: $GLOBALS
$GLOBALS 슈퍼전역은 PHP 스크립트의 모든 필드(함수 또는 메소드 포함)에서 전역 변수에 액세스하는 데 사용됩니다. PHP는 모든 전역 변수를 $GLOBALS[index]라는 배열에 저장합니다. 인덱스는 변수의 이름을 보유합니다. 다음 예에서는 $GLOBALS 수퍼전역 변수를 사용하는 방법을 보여줍니다.
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP 슈퍼 글로벌: $_REQUEST
PHP $_REQUEST는 HTML 형식에서 데이터를 수집하는 데 사용되는 PHP 슈퍼글로벌입니다.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_REQUEST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>위의 예에서는 post 메소드를 사용하여 데이터를 반환하는 양식을 만들었습니다. $_SERVER['PHP_SELF']를 사용하여 동일한 페이지에 데이터를 반환하도록 활성화했습니다. $_SERVER['REQUEST_METHOD'] 슈퍼글로벌과 함께 제공되는 요청이 게시물 요청임을 확인했습니다. 그런 다음 htmlspecialchars() 함수를 사용하여 $_REQUEST 슈퍼 전역을 사용하여 name 값이 있는 fname이라는 입력의 데이터를 $name 변수에 안전하게 할당했습니다. PHP if 조건을 사용하여 $name 변수가 비어 있는지 확인했습니다. 비어 있으면 "No name" 출력을 인쇄하고, 그렇지 않으면 $name 변수의 데이터를 인쇄합니다.
PHP 슈퍼 글로벌: $_POST
PHP $_POST는 POST 메소드를 통해 HTML 양식에서 데이터를 수집하는 데 사용되는 PHP 슈퍼글로벌입니다.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_POST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>위의 예에서는 post 메소드를 사용하여 데이터를 반환하는 양식을 만들었습니다. $_SERVER['PHP_SELF']를 사용하여 동일한 페이지에 데이터를 반환하도록 활성화했습니다. $_SERVER['REQUEST_METHOD'] 슈퍼글로벌과 함께 제공되는 요청이 게시물 요청임을 확인했습니다. 그런 다음 htmlspecialchars() 함수를 사용하여 이름 값이 있는 fname이라는 입력의 데이터를 $_POST 슈퍼 전역이 있는 $name 변수에 안전하게 할당했습니다. PHP if 조건을 사용하여 $name 변수가 비어 있는지 확인했습니다. 비어 있으면 "No name" 출력을 인쇄하고, 그렇지 않으면 $name 변수의 데이터를 인쇄합니다.
PHP 슈퍼 글로벌: $_GET
PHP $_GET은 GET 메소드를 통해 HTML 양식에서 데이터를 수집하는 데 사용되는 PHP 슈퍼글로벌입니다. $_GET superglobal을 사용하여 URL에서 get으로 전송된 데이터를 검색할 수도 있습니다.
PHP $_GET Super Global을 사용하여 양식에서 데이터 가져오기
아래 예에서는 PHP $_GET superglobal을 사용하여 HTML 양식에서 데이터를 받았습니다.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_GET[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>위의 예에서는 post 메소드를 사용하여 데이터를 반환하는 양식을 만들었습니다. $_SERVER['PHP_SELF']를 사용하여 동일한 페이지에 데이터를 반환하도록 활성화했습니다. $_SERVER['REQUEST_METHOD'] 슈퍼글로벌과 함께 제공되는 요청이 게시물 요청임을 확인했습니다. 그런 다음 htmlspecialchars() 함수를 사용하여 이름 값이 있는 fname이라는 입력의 데이터를 $_POST 슈퍼 전역이 있는 $name 변수에 안전하게 할당했습니다. PHP if 조건을 사용하여 $name 변수가 비어 있는지 확인했습니다. 비어 있으면 "No name" 출력을 인쇄하고, 그렇지 않으면 $name 변수의 데이터를 인쇄합니다.
PHP $_GET Super Global을 사용하여 URL에서 데이터 가져오기
아래 예에서는 PHP $_GET superglobal을 사용하여 URL에서 데이터를 검색했습니다.
<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>위의 예에서는 파일 이름을 입력하는 대신 $_SERVER 슈퍼글로벌을 사용하여 파일 이름을 얻었습니다. 이제 이 예에서 수행한 작업을 설명하겠습니다. 우리는 HTML 문서를 생성하고 get.php 파일에 name 매개변수를 제공했습니다. 이름 매개변수에 값 "Onur Özden"을 부여하고 매개변수를 '&' 기호로 구분했습니다. 그런 다음 웹사이트 매개변수를 생성하고 "onurozden.com.tr" 값을 지정했습니다. 레이블 A에 "Click Here"라는 텍스트를 인쇄했습니다. PHP 부분에서는 echo와 함께 "My name"을 인쇄하고 연결 연산자와 함께 $_GET 슈퍼전역을 사용하여 name이라는 매개변수의 데이터를 검색하고 인쇄했습니다. 이번에도 병합 연산자를 사용하여 " and my website "를 인쇄했습니다. 우리는 연결 연산자를 다시 사용하여 $GET superglobal로 웹사이트 매개변수의 데이터를 가져와서 인쇄했습니다.
PHP 슈퍼 글로벌: $_SERVER
$_SERVER 슈퍼전역은 헤더, 경로 및 스크립트 위치에 대한 정보를 보유하는 PHP 슈퍼전역 변수입니다. 아래 예에서는 $_SERVER 슈퍼글로벌을 사용하는 방법을 보여줍니다.
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'];위의 예에서는 $number1 및 $number2라는 변수를 정의하고 숫자 유형의 값을 지정했습니다. 그런 다음 int 데이터 유형의 값을 반환하는 추가라는 함수를 정의했습니다. $GLOBALS 슈퍼전역에서는 변수 이름이 인덱스로 유지된다고 말했습니다. number3이라는 인덱스를 생성하여 변수를 생성했습니다. $GLOBALS 슈퍼글로벌을 사용하여 전역 영역에서 액세스한 $number2 변수와 $number1 변수의 합계를 이 변수에 할당했습니다. 그런 다음 return을 사용하여 이 값을 반환하고 함수를 종료했습니다. 마지막 단계로 우리는 추가() 함수의 값을 echo와 함께 출력합니다.
PHP $_SERVER Super Global의 모든 용도
| $_SERVER['PHP_SELF'] | 실행된 스크립트의 파일 이름을 반환합니다. |
| $_SERVER['GATEWAY_INTERFACE'] | 서버에서 사용하는 CGI(Common Gateway Interface) 버전을 반환합니다. |
| $_SERVER['SERVER_ADDR'] | 호스트 서버의 IP 주소를 반환합니다. |
| $_SERVER['SERVER_NAME'] | 메인 서버의 이름을 반환합니다. |
| $_SERVER['SERVER_SOFTWARE'] | 서버 식별 텍스트(예: Apache/2.2.24)를 반환합니다. |
| $_SERVER['SERVER_PROTOCOL'] | 정보 프로토콜(예: HTTP/1.1)의 이름과 버전을 반환합니다. |
| $_SERVER['REQUEST_METHOD'] | 페이지에 액세스하는 데 사용되는 요청 메서드(예: POST, GET)를 반환합니다. |
| $_SERVER['REQUEST_TIME'] | 요청 시작 부분의 타임스탬프를 반환합니다(예: 1377687496). |
| $_SERVER['QUERY_STRING'] | 쿼리 문자열을 통해 페이지에 액세스하면 쿼리 문자열이 반환됩니다. |
| $_SERVER['HTTP_ACCEPT'] | 현재 요청의 승인 헤더를 반환합니다. |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | 현재 요청(예: utf-8,ISO-8859-1)에서 Accept_Charset 헤더를 반환합니다. |
| $_SERVER['HTTP_HOST'] | 현재 요청에서 호스트 헤더를 반환합니다. |
| $_SERVER['HTTP_REFERER'] | 현재 페이지의 전체 URL을 반환합니다(모든 사용자 에이전트가 이를 지원하지 않으므로 신뢰할 수 없음). |
| $_SERVER['HTTPS'] | 보안 HTTP 프로토콜(HTTPS)을 통해 스크립트가 쿼리되는지 확인합니다. |
| $_SERVER['REMOTE_ADDR'] | 사용자가 현재 페이지를 보고 있는 IP 주소를 반환합니다. |
| $_SERVER['REMOTE_HOST'] | 사용자가 현재 페이지를 보고 있는 호스트 이름을 반환합니다. |
| $_SERVER['REMOTE_PORT'] | 웹 서버와 통신하기 위해 사용자 컴퓨터에서 사용되는 포트를 반환합니다. |
| $_SERVER['SCRIPT_FILENAME'] | 현재 실행 중인 스크립트의 절대 경로를 반환합니다. |
| $_SERVER['SERVER_ADMIN'] | 웹 서버 구성 파일의 SERVER_ADMIN 지시어에 지정된 값을 반환합니다(스크립트가 가상 호스트에서 실행 중인 경우 해당 가상 호스트에 대해 정의된 값이 됩니다)(예: some@onurozden.com.tr). |
| $_SERVER['SERVER_PORT'] | 웹 서버가 통신을 위해 사용하는 서버 시스템의 포트(예: 80)를 반환합니다. |
| $_SERVER['SERVER_SIGNATURE'] | 서버 생성 페이지에 추가된 서버 버전과 가상 호스트 이름을 반환합니다. |
| $_SERVER['PATH_TRANSLATED'] | 현재 스크립트에 대한 파일 시스템 기반 경로를 반환합니다. |
| $_SERVER['SCRIPT_FILENAME'] | 현재 스크립트의 경로를 반환합니다. |
| $_SERVER['SCRIPT_URI'] | 현재 페이지의 URI를 반환합니다. |



