변수의 종류와 외부로부터의 변수
미리 정의된 변수
변수에는 우리가 만들어 사용할 수 있는 변수와 미리 정의되어진 변수가 있습니다.
우선 미리 정의된 변수는 서버 종류, 버전 등이나 기타 환경에 따라 변하는 변수들입니다.
아파치와 PHP 각각 몇 개의 변수를 지정해 놓은 상태이며 이 변수들은 우리가 인위적으로 값을
수정하거나 일반 변수로 사용할 수 없습니다.
이 변수들은 아파치 홈페이지나 PHP의 phpinfo() 함수로 확인할 수 있습니다.
미리 정의된 변수 목록.
https://www.php.net/manual/en/reserved.variables.php
미리 정의된 변수 | 용도 |
---|---|
$_GET | HTTP GET 방식으로 넘어온 변수 |
$_POST | HTTP POST 방식으로 넘어온 변수 |
$_COOKIE | HTTP 쿠키 변수 |
$_FILES | 업로드시 파일 정보 변수 |
$_SESSION | 세션 변수 |
$_SERVER | 웹서버와 PHP 환경에서의 환경 설정 변수 |
외부로 부터의 변수
내부에 선언없이 외부로부터 넘어오는 변수입니다.
예제를 보시면 이해가 가실 겁니다.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=post>
<input name=info>
<input type=submit value=보내기>
</form>
<?php echo "폼을 이용해 전송된 값 : $_POST['info']"; ?>
위 소스는 폼에 임의의 값을 입력받아 자신의 파일($_SERVER['PHP_SELF']
)로 그 정보를 넘기는 프로그램입니다.
이 그림이 위의 소스를 실행한 결과입니다.
자 그럼 abc라는 값을 보내 보겠습니다. 위에서 폼의 action(정보를 보낼 문서 경로 지정)에 $_SERVER['PHP_SELF']
를
썼기 때문에 자기 자신 파일로 정보(abc)를 보내게 됩니다.
$_SERVER['PHP_SELF']
는 미리 정의된 변수로 자신의 파일명을 나타냅니다.
첫 번째 그림에서 없던 abc라는 값이 출력되었습니다.
abc라는 값은 위의 소스에서 info라는 이름의 input 박스를 통해 넘어온 값입니다.
이 값은 $_POST['info']
라는 변수에 자동 저장되므로 $_POST['info']
변수를 통해서 이 값을 출력했습니다.