폼이 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에서는 이 제한이 없어졌다.
폼은 submit할 때 일반적으로 사용하는 submit 버튼 대신 다음과 같이 그림을 사용할 수도 있다. :
사용자가 image를 클릭하면, 폼은 sub_x와 sub_y의 두 개의 변수가 추가되어 서버에 전송된다. 이 두 변수는 이미지에서 사용자가 click한 위치 정보를 담고 있다. 일부 브라우저에서는 밑줄(_)대신 마침표(.)를 사용하는 경우도 있는데, PHP는 이런 경우 자동적을 마침표(.)를 밑줄(_)로 바꿔준다.
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() 가 그것들이다.