PHP Superglobals Variables

Superglobals are built-in variables that are always available in all scopes. They were added to PHP 4.1.0.

Some of PHP\’s predefined variables are \”superglobals,\” which means that you can always use them, no matter what their scope is. You can use them from any function, class, or file without doing anything special.

We\’ll learn about PHP\’s superglobals.

These are array variables in PHP that are set up in a special way that makes it easy to find out about a request or its context. The superglobals can be used anywhere in your script. Any function, class, or file can use these variables without having to do anything special, like declare a global variable or something. In an application, they are mostly used to store information and get it from one page to another, etc.

These things are PHP\’s superglobal variables:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Now, let\’s learn more about some of these superglobals:

PHP $GLOBALS

$GLOBALS is a PHP super global variable that lets global variables be accessed from anywhere in a PHP script (also from within functions or methods).

All global variables in PHP are kept in a list called $GLOBALS[index]. The name of the variable is written in the index.

Below is an example of how to use the super global variable $GLOBALS:

Example

<!DOCTYPE html>
<html>
<body>

<?php
$a = 75;
$b = 15;

function addition() {
$GLOBALS[\’c\’] = $GLOBALS[\’a\’] + $GLOBALS[\’b\’];
}

addition();
echo $c;
?>

</body>
</html>

Output

90

In the above example, as c is a variable within the $GLOBALS array, it is also accessible outside of the function!

PHP $_SERVER

PHP has a super global variable called $_SERVER that stores information about headers, paths, and script locations.

In the example below, you can see how to use some of $_SERVER\’s parts:

We used the $_SERVER elements in the code above to get some information. We get the name of the file that is being worked on right now by using the \”PHP SELF\” element. Then, we get the name of the server being used now by using the \”SERVER NAME\” element. Then, \”HTTP HOST\” gives us the name of the host.

 

Example

<!DOCTYPE html>
<html>
<body>

<?php
echo $_SERVER[\’PHP_SELF\’];
echo \”<br>\”;
echo $_SERVER[\’SERVER_NAME\’];
echo \”<br>\”;
echo $_SERVER[\’HTTP_HOST\’];
echo \”<br>\”;
echo $_SERVER[\’HTTP_REFERER\’];
echo \”<br>\”;
echo $_SERVER[\’HTTP_USER_AGENT\’];
echo \”<br>\”;
echo $_SERVER[\’SCRIPT_NAME\’];
?>

</body>
</html>

Output

/example/superglobals.php
15.195.29.40
15.195.29.40
https://coderazaa.com/showphp.php?filename=demo_global_server
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
/example/Superglobals .php

Element/Code Description
$_SERVER[\’PHP_SELF\’] Returns the filename of the script that is currently running.
$_SERVER[\’GATEWAY_INTERFACE\’] Returns the Common Gateway Interface (CGI) version that the server is using.
$_SERVER[\’SERVER_ADDR\’] Returns the host server\’s IP address.
$_SERVER[\’SERVER_NAME\’] Returns the host server\’s name (such as www.coderazaa.com)
$_SERVER[\’SERVER_SOFTWARE\’] Returns the server ID string (for example, Apache/2.2.24)
$_SERVER[\’SERVER_PROTOCOL\’] Returns the name and version number of the information protocol.(such as HTTP/1.1)
$_SERVER[\’REQUEST_METHOD\’] Returns the method that was used to get to the page (such as POST)
$_SERVER[\’REQUEST_TIME\’] Returns the date and time that the request was sent(such as 1377687496)
$_SERVER[\’QUERY_STRING\’] Returns the query string if the page is accessed via a query string
$_SERVER[\’HTTP_ACCEPT\’] Returns back the current request\’s Accept header.
$_SERVER[\’HTTP_ACCEPT_CHARSET\’] Returns the current request\’s Accept-Charset header (such as utf-8,ISO-8859-1)
$_SERVER[\’HTTP_HOST\’] Returns back the current request\’s Host header.
$_SERVER[\’HTTP_REFERER\’] Gives the full address of the current page (not reliable because not all user agents support it)
$_SERVER[\’HTTPS\’] Is the script asked about using a safe HTTP protocol?
$_SERVER[\’REMOTE_ADDR\’] Returns the user\’s IP address from where the current page is being viewed.
$_SERVER[\’REMOTE_HOST\’] Returns the name of the Host where the current page is being viewed.
$_SERVER[\’REMOTE_PORT\’] Returns the port that the user\’s computer is using to talk to the web server.
$_SERVER[\’SCRIPT_FILENAME\’] Returns the full name of the script that is currently running.
$_SERVER[\’SERVER_ADMIN\’] Returns the value that was given to the web server\’s SERVER_ADMIN directive.  configuration file (it will be the value of your script runs on a virtual host). (For example, example@coderazaa.com is a virtual host.)
$_SERVER[\’SERVER_PORT\’] Returns the port that the web server is using to talk to the server (such as 80)
$_SERVER[\’SERVER_SIGNATURE\’] Returns the server version and virtual hostname that is added to pages that are made by the server.
$_SERVER[\’PATH_TRANSLATED\’] Returns the path to the current script based on the file system.
$_SERVER[\’SCRIPT_NAME\’] Returns the current script\’s path.
$_SERVER[\’SCRIPT_URI\’] Gives you the URI of the page you\’re on.

PHP $_REQUEST

PHP $_REQUEST is a super global variable that is used to get information from an HTML form after it has been submitted.

In the example below, you can see a form with a text box and a button that says \”Submit.\” When a user clicks \”Submit\” on the form, the data is sent to the file named in the action attribute of the form> tag. In this case, we tell the computer to use this file to process form data. If you want to process form data with a different PHP file, replace that with the name of the file you want to use. Then, we can get the value of the input field by using the super global variable $_REQUEST:

Example

<!DOCTYPE html>
<html>
<body><form method=\”post\” action=\”<?php echo $_SERVER[\’PHP_SELF\’];?>\”>
Name: <input type=\”text\” name=\”name\”>
<input type=\”submit\”>
</form><?php
if ($_SERVER[\”REQUEST_METHOD\”] == \”POST\”) {
// collect value of input field
$name = htmlspecialchars($_REQUEST[\’name\’]);
if (empty($name)) {
echo \”Name is empty\”;
} else {
echo $name;
}
}
?></body>
</html>

Output

\"\"

PHP $_POST

PHP $_POST is a super global PHP variable that is used to collect form data after an HTML form with method=\”post\” has been submitted. A lot of variables are also sent through $_POST.

In the example below, you can see a form with a text box and a button that says \”Submit.\” When a user clicks \”Submit\” on the form, the data is sent to the file named in the action attribute of the form> tag. In this case, we process form data by pointing to the file itself. If you want to process form data with a different PHP file, replace that with the name of the file you want to use. Then, we can get the value of the input field by using the super global variable $_POST:

The code is shown in the example below:

Example

<!DOCTYPE html>
<html>
<body><form method=\”post\” action=\”<?php echo $_SERVER[\’PHP_SELF\’];?>\”>
Name: <input type=\”text\” name=\”name\”>
<input type=\”submit\”>
</form><?php
if ($_SERVER[\”REQUEST_METHOD\”] == \”POST\”) {
// collect value of input field
$name = htmlspecialchars($_POST[\’name\’]);
if (empty($name)) {
echo \”Name is empty\”;
} else {
echo $name;
}
}
?></body>
</html>

Output

\"\"

 

PHP $_GET

PHP $_GET is a super global variable in PHP that is used to collect form data after an HTML form with method=\”get\” has been submitted.

$_GET can also get information from the URL.

Let\’s say we have an HTML page with a link that has parameters:

When a user clicks on the link \”Test $GET,\” the parameters \”subject\” and \”web\” are sent to \”test get.php.\” You can then use the $_GET variable to get the values of \”subject\” and \”web\” in \”test get.php.\”

The code is shown in the example below:

 

Example

<!DOCTYPE html>
<html>
<body><form method=\”get\” action=\”<?php echo $_SERVER[\’PHP_SELF\’];?>\”>
Name: <input type=\”text\” name=\”name\”>
<input type=\”submit\”>
</form><?php
if ($_SERVER[\”REQUEST_METHOD\”] == \”GET\”) {
// collect value of input field
$name = htmlspecialchars($_GET[\’name\’]);
if (empty($name)) {
echo \”Name is empty\”;
} else {
echo $name;
}
}
?></body>
</html>

Output

\"\"

Related Posts
50+ PHP Interview Questions and Answers 2023

1. Differentiate between static and dynamic websites. Static Website The content cannot be modified after the script is executed The Read more

All We Need to Know About PHP Ecommerce Development

  Many e-commerce sites let you search for products, show them off, and sell them online. The flood of money Read more

PHP Custom Web Development: How It Can Be Used, What Its Pros and Cons Are,

PHP is a scripting language that runs on the server. It uses server resources to process outputs. It is a Read more

PHP Tutorial

Hypertext Preprocessor (PHP) is a programming language that lets web developers make dynamic content that works with databases. PHP is Read more

Introduction of PHP

PHP started out as a small open source project that grew as more and more people found out how useful Read more

Syntax Overview of PHP

This chapter will show you some of PHP\'s very basic syntax, which is very important for building a strong PHP Read more

Environment Setup in PHP

To develop and run PHP on your computer, you need to instal three important parts. Web server PHP can almost Read more

Variable Types in PHP

Using a variable is the main way to store information in the middle of a PHP program. Here are the Read more

Scroll to Top