본문 바로가기
프로그래밍/PHP

[PHP] 외부 변수 사용법 / 일반 변수의 규칙 / 변수의 범위와 상수

by B T Y 2017. 7. 29.
반응형

외부 변수 사용법 / 일반 변수의 규칙에 대해서 정리한다.

 

 

- 외부 변수 사용법

 

미리 정의된 변수는 서버 종류, 버전 등이나 기타 환경에 따라 변하는 변수를 의미하고
아파치 홈페이지나 phpinfo() 함수로 확인이 가능하다.

 

수퍼 전역변수
  $_GET                         HTTP GET 방식으로 넘어온 변수
  $_POST                       HTTP POST 방식으로 넘어온 변수
  $_COOKIE                    HTTP 쿠키 변수
  $_FILES                       업로드시 파일 정보 변수
  $_SESSION                  세션 변수
  $_SERVER                    웹서버와 PHP 환경에서의 환경 설정 변수

 


- 외부로부터의 변수

내부에서 선언없이 외부로부터 넘어오는 값을 그대로 사용하는 변수이다.

 

외부 변수들에 대해서 php 사이트를 보면 더 자세한 내용을 참고 할수 있다.
http://php.net/manual/kr/language.variables.external.php


 

 

( 외부 변수를 이용해서 따로 변수를 선언하지 않고 값을 가져와서 이용할 수 있다 )

 

 

( 'hello'라는 값을 입력해서 보내주면 $PHP_SELF를 사용했기 때문에 자기 자신의 파일로 정보를 보내게 된다 )

 

 

( info라는 이름의 input 박스를 통해서 넘어온 정보가 $_POST["info"]에 자동 저장되므로 이 값을 출력 해준것이다 )

 

 

* php.ini 파일에서 register_globals=off 설정을 on으로 바꿔주고 $_POST["info"] 대신에 $info로 이용할수도 있다.

  ( register_globals 옵션은 환경, GET, POST, 서버 변수를 전역 변수로 만들지 설정하는 옵션이다 )

 

* 해당 옵션이 off인 경우에는 위 그림에 설명된 방법처럼 $_POST[""]와 같은 방법을 이용해도 되고

 아니면 아래와 같은 방법을 사용해도 된다.

 

<?
extract($_POST);
extract($_GET);
extract($_SERVER);
?>

 

 


- 일반변수의 규칙

 ( 프로그래머가 임의적으로 만들어 쓰는 변수 )

 

1. 영문 소/대문자, 숫자, _(밑줄)로 이루어지고 이외의 문자를 포함하면 에러 발생
2. 소문자 대문자 구별이 있지만 PHP 내장함수는 제외한다.
   ( 예를 들어서 print(""); 와 Print("");는 같게 취급된다 )
3. 변수는 반드시 $로 시작한다.
4. 변수의 첫 문자는 숫자가 올수 없다.

 

허용   :   babo , php4 , linux_apache_php_MySQL
불허   :   babo? , 4php , linux-apache-php-MySQL

 

* php에서는 Unicode 변수를 허용하기 때문에 한글 변수명도 가능하다.


 

 

- 변수의 범위와 상수

 

 

- global( 전역변수 )
  * 전역변수는 global을 이용하게되고 global을 이용하면 함수 안에서도 밖에 있는
    변수의 값을 가져와 사용할 수 있게 된다.

 

- static( 정적변수 )
  * 정적변수는 그 지역 안에서는 변수가 해당 값을 계속해서 유지하고 있는 상태로
    함수를 재호출 했을때도 그 값이 남아있는 변수를 의미한다.

 

- define( 상수 )
  * 항상 똑같은 값을 가지는 변하지 않는 값을 의미하고 변수처럼 $를 표기하지 않는다.

  * define("상수명", "상수에 저장될 값");

  * PHP에서는 PHP_VERSION(현재 PHP 버전), PHP_OS(현 시스템의 운영체제),M_PI(원주율)등의

   미리 일정의 상수를 정의해두었다.

 

 

 

( 코드와 결과를 참고하면 global과 static이 어떤식으로 동작하는지 이해하기 쉽다 )

 

 

( 상수의 경우에는 define으로 정의해주고 사용방법은 일반 변수와는 다르게 $를 붙이지 않고 사용해준다 )

 

 

반응형

댓글