폼이 PHP 스크립트로 submit되면 폼에 있는 모든 내용들이 자동적으로 만들어진 PHP 변수로 들어온다. 만약 track_vars 옵션이 on으로 설정되어 있으면, 이 변수들 모두는 그것이 어디서 만들어진 것이냐에 따라서 $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_POST_FILES의 associative 배열에 위치하게 된다.
이 변수에대한 자세한 설명은 미리 정의된 변수 (Predefined variables)을 읽어보기 바란다.
위의 폼이 전송될 때, text input의 내용은 $HTTP_POST_VARS['username']에 있다. 만약 register_globals 지시자가 켜져 있으면, 스크립트의 전역 영역에서 $username이라는 변수에도 이 값이 저장된다.
PHP는 폼 변수에 배열을 사용할 수도 있다. 예를들어, 내용적으로 묶을 수 있는 변수들을 하나의 배열로 묶을 수 있고, 이 기능을 select 문에 사용하여 다중 선택을 구현할 수 있다.
PHP3에서 폼 배열에 사용되는 배열은 일차원 배열로 제한되었지만, PHP4에서는 이 제한이 없어졌다.
PHP는 HTTP 쿠키를 Netscape's Spec의 정의에 따라 제공한다. Cookie 메카니즘은 트래킹이나 사용자 식별 등을 위해 원격 browser에 저장된 데이터를 돌려 받는 과정을 말한다. 여러분은 cookie를 설정하기 위해 SetCookie()함수를 사용할 수 있다. Cookie는 HTTP 헤더의 한 부분이므로, SetCookie() 함수는 브라우저로 보내는 어떤 데이터보다도 앞에 사용해야 한다. 이 제약은 header() 함수와 같은 제약으로 보면 된다. 보낸 모든 cookie는 자동적으로 GET이나 POST 방식 데이터와 같은 PHP 변수로 변환된다.
만약 여러분이 동일한 cookie에 여러 값을 저장하고 싶다면 Cookie이름에 []를 더하면 된다. 예를 들어 :
쿠키는 새로 설정하면 path나 도메인이 다르지 않는 한 이전의 쿠키를 덮어쓰게 된다. 그러므로 쇼핑 카트 같은 응용 프로그램에서는 다음과 같이 카운터를 사용하여, 이것을 기준으로 Cookie를 사용하는 것이 좋다. 예 :
PHP는 자동적으로 환경 변수들을 일반적인 PHP 변수로 만든다.
GET, POST, Cookie 메카니즘을 통해서 들어 온 정보로부터도 PHP 변수가 생기므로, 때때로 환경변수로부터 받은것이 확실한가를 확인할 필요가 있을 때도 있다. 이를 위해 getenv() 함수를 사용한다. 환경 변수를 설정하기 위해서는 putenv() 함수를 사용한다.
일반적으로 PHP는 변수를 스크립트로 가져올 때 변수명을 바꾸지 않는다. 그러나, PHP의 변수명에는 '.' (점)을 사용할 수 없다. 다음과 같은 경우를 보자. :
$varname.ext; /* invalid variable name */ |
위와 같은 이유로 PHP는 외부에서 불러들인 변수의 이름에 '.'이 있으면 '_'(밑줄)로 바꾸어 읽어들인다.
PHP는 변수의 type을 알아서 정하고 (일반적으로) 필요한 경우에는 그 type을 바꾸므로, 특정 시점에 그 변수 어떤 type인지는 쉽게 알 수 없다. PHP는 변수의 type을 알아보기 위해 여러개의 함수를 가지고 있다. gettype(), is_long(), is_double(), is_string(), is_array(), is_object() 가 그것들이다.