• PHP Video Tutorials

PHP - Superglobals



The PHP parser populates the current script with a number of predefined variables in its global namespace. The predefined variables are known as "PHP superglobals".

  • Any user defined variable declared outside of any function, method, or class also is a global variable. However, to access it, you need to use the global keyword.

  • In contrast, superglobals are always available anywhere in the PHP script, without mentioning them with the global keyword.

Most of the superglobals in PHP are associative arrays, and the web server populates them. Hence, if a script is run in the command-line environment, some of the superglobals may be empty.

The list of superglobal variables in PHP includes the following −

  • $GLOBALS

  • $_SERVER

  • $_GET

  • $_POST

  • $_FILES

  • $_COOKIE

  • $_SESSION

  • $_REQUEST

  • $_ENV

In this chapter, we will have a brief introduction to these superglobal variables in PHP. In the subsequent chapters, we will discuss these superglobal variables in detail.

$GLOBALS

It is an associative array of references to all globally defined variables. Names of variables form keys and their contents are values of associative array.

$_SERVER

All the server and execution environment related information is available in this associative array.

PHP versions prior to 5.4.0 contained $HTTP_SERVER_VARS contained the same information but has now been removed.

$_GET

It is an associative array of variables passed to the current script via query string appended to URL of HTTP request. Note that the array is populated by all requests with a query string in addition to GET requests.

A query string is a list of all variables and their values in the form var=val and concatenated by the "&" symbol.

The query string itself is appended to the name of PHP script after the "?" symbol. For example, http://localhost/hello.php?first_name=Amar&last_name=Sharma.

$_POST

It is an associative array of key-value pairs passed to a URL by HTTP POST method that uses URLEncoded or multipart/form-data content-type in request.

$HTTP_POST_VARS also contains the same information as $_POST, but is not a superglobal, and now been deprecated. The easiest way to send data to a server with POST request is specifying the method attribute of HTML form as POST.

$_FILES

The variable $_FILES is an associative array containing items uploaded via HTTP POST method. A file is uploaded when a HTML form contains an input element with file type, its enctype attribute set to multipart/form-data, and the method attribute set to HTTP POST method.

$_COOKIE

Cookies are text files stored by a server on the client computer and they are kept of use tracking purpose.

The superglobal $_COOKIE stores variables passed to the current PHP script along with the HTTP request in the form of cookies.

$_SESSION

An HTTP session is the time duration between the time a user establishes connection with a server and the time the connection is terminated. During this interval, some data is persistently available across pages in the form of session variables.

The $_SESSION superglobal is an associative array of session variables available to the current script.

$_REQUEST

$_REQUEST is an associative array which is a collection of contents of $_GET, $_POST and $_COOKIE variables.

The order of these variables is decided by the values of requests_order and varables_order settings in the "php.ini" file.

$_ENV

$_ENV is an associative array that stores all the environment variables available to the current script. This array also includes CGI variables in case PHP is running as a server module or CGI processor.

Advertisements