본문 바로가기

개발/PHP

[php] $_REQUEST 글로벌 변수 와 variables_order

php 슈퍼 글로벌 변수중 하나인  $_REQUEST

php에서 http request로 받는 데이터를 가져오는 방법에는 3가지 get, post, request 가 있습니다.

get, post 방식은 우리가 생각하는 그 방식이지만 request는 무엇일까요?

 

 

아래와 같은 방식으로 테스트를 해보았습니다.

 

 

html 코드

  • 입력한 데이터
    • id1 = foo
    • id2 = bar 
<html>
    <form name ="frmtest" method="POST" action="test.php?id1=foo">
    	id : <input type ="text" name ="id2"><br>
        <input type ="submit" value="확인">
    </form>
</html>

 

 

php 코드

<?
echo "GET1 : ".$_GET["id1"];
echo "GET2 : ".$_GET["id2"];

echo "POST1 : ".$_POST["id1"];
echo "POST2 : ".$_POST["id2"];

echo "REQUEST1 : ".$_REQUEST["id1"];
echo "REQUEST2 : ".$_REQUEST["id2"];
?>

// 결과
GET1: foo
GET1:

POST1:
POST2: bar

REQUEST: foo
REQUEST: bar

 

더 알아보기

$_REQUEST 변수는  $_GET, $_POST 로 각각 가져올 수 있는 값을 모두 가져올 수 있는 php 슈퍼 글로벌 변수 중 하나입니다.

 

보통은 $_REQUEST 변수를 많이 사용하지 않고 클라이언트로부터 받아온 데이터의 성격을 명확히 구분하기 위해 $_GET, $_POST 방식이 많이 쓰입니다.

 

get, post 방식으로 데이터를 보낼 때 변수 명을 동일하게  id로 보냈다면 php는 미리 정해진 순서에 따라 각각의 변수를 파싱 합니다.

 

$_REQUEST 의 변수 파싱 순서는  php.ini 파일의 variables_order 로 설정 할 수 있습니다.