Home >Backend Development >PHP Tutorial >What are super global variables in PHP? how to use?

What are super global variables in PHP? how to use?

青灯夜游
青灯夜游Original
2019-02-13 16:49:447356browse

There are some array variables predefined in PHP. These variables can be accessed anywhere in the script at any time. They are called super global variables. This article will introduce you to these super global variables and briefly understand the usage of these variables. I hope it will be helpful to you. [Video tutorial recommendation: PHP tutorial]

What are super global variables in PHP? how to use?

What are superglobals variables?

Super global variables are built-in, specially defined array variables in PHP. They can use super global variables to access information at any time and anywhere in the script. That is, regardless of the scope, information about the request or its context can be easily obtained.

Super global variables can be accessed from any function, class or any file without performing any special task like declaring any global variable etc. They are mainly used to store and retrieve information from one page to another in the application.

The following is a list of superglobal variables available in PHP:

● $ GLOBALS

● $ _ SERVER

● $ _REQUEST

● $ _GET

● $ _ POST

● $ _SESSION

● $ _COOKIE

● $ _FILES

● $ _ENV

Next, let’s introduce some of the super global variables in detail.

$ GLOBALS

$ GLOBALS is a super global variable that stores all variables declared in the script and can be used to access any location in the script any variable.

PHP stores all global variables in the array $GLOBALS[], this array has an index that holds the global variable name and can be accessed using that name.

Let’s take a look at how to use $GLOBALS:

<?php 
$x = 300; 
$y = 200; 
  
function multiplication(){ 
    $GLOBALS[&#39;z&#39;] = $GLOBALS[&#39;x&#39;] * $GLOBALS[&#39;y&#39;]; 
} 
multiplication(); 
echo $z; 
?>

In the above code, two global variables $x and $y are declared and assigned the values ​​​​300 and 200. Then define the function multiplication() to multiply and store the $x and $y values ​​in another variable $z defined in the GLOBAL array.

We know that the variables $x and $y will not be accessed in the function multiplication() because they are not declared in it; but we can do so by accessing it using the $GLOBALS array variable.

When the function square() is called, the multiplication of the values ​​of variables $x and $y is performed; then it can be displayed directly.

The multiplication result obtained because the variable $z also exists in the $GLOBALS array variable.

Output:

What are super global variables in PHP? how to use?

$ _SERVER

$ _SERVER is a PHP super global Variable that stores information about the title (header), path and script location, i.e. it stores information about the web and its requests. Some of these elements are used to obtain information from the superglobal variable $_SERVER.

$ There are many information elements used in the _SERVER variable. Some of them are listed below:

##$ _ SERVER ['SERVER_ADDR']Returns the IP address of the host server.​ $ _ SERVER ['SERVER_NAME'] Returns the name of the host server.​ $ _ SERVER ['QUERY_STRING'] If the page is accessed through the query string, the query string is returned.​ $ _ SERVER ['REQUEST_TIME'] Returns the timestamp when the request started.​

下面我们就来看看如何使用$ _SERVER:

<?php 
echo $_SERVER[&#39;PHP_SELF&#39;]; 
echo "<br>"; 
echo $_SERVER[&#39;SERVER_NAME&#39;]; 
echo "<br>"; 
echo $_SERVER[&#39;HTTP_HOST&#39;]; 
echo "<br>"; 
echo $_SERVER[&#39;HTTP_USER_AGENT&#39;]; 
echo "<br>"; 
echo $_SERVER[&#39;SCRIPT_NAME&#39;]; 
echo "<br>"
?>

输出:

What are super global variables in PHP? how to use?

在上面的代码中,我们使用$ _SERVER元素来获取一些信息。我们使用'PHP_SELF'元素获取当前处理的文件名,使用'SERVER_NAME'元素获取当前使用的服务器名称,通过'HTTP_HOST'获取主机名。

$ _REQUEST

$ _REQUEST是一个超全局变量,用于在提交HTML表单后收集数据。$ _REQUEST主要不使用,因为$ _POST和$ _GET执行相同的任务并被广泛使用。

注:$ _REQUEST可能导致安全风险。

下面我们就来看看如何使用$ _REQUEST:

<!DOCTYPE html>
<html> 
<head>
<meta charset="UTF-8">
   </head>
<body>   
<div class="demo">
<form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>"> 
 用户名: <input type="text" name="fname"> 
 <button type="submit">提交</button> 
</form> 
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $name = htmlspecialchars($_REQUEST[&#39;fname&#39;]); 
    if(empty($name)){ 
        echo "用户名为空"; 
    } else { 
        echo "用户名为:".$name; 
    } 
} 
?> 
</div>  
</body>   
</html>

效果图:

What are super global variables in PHP? how to use?

在上面的代码中,我们创建了一个表单,该表单将用户名作为输入,并在单击提交按钮时输出显示其名称。我们使用action属性中指定的$ _SERVER ['PHP_SELF']元素将表单中接受的数据传输到同一页面,因为我们使用PHP代码操作同一页面中的数据。使用$ _REQUEST超全局数组变量检索数据。

$ _POST

$ _POST是一个超级全局变量,用于在提交数据后从HTML表单收集数据,当用于传输数据的方法是“POST”时。

当表单使用方法post传输数据时,数据在查询字符串中不可见,即在此方法中保持安全级别。

下面我们就来看看如何使用$ _POST:

<!DOCTYPE html>
<html> 
<head>
<meta charset="UTF-8">
   </head>
<body>   
<div class="demo">
<form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>"> 
 <label for="name">用户名: </label> 
 <input name="name" type="text"><br> 
 <label for="age">年龄: </label> 
 <input name="age" type="number"><br> 
 <input type="submit" value="提交"> 
</form> 
<?php
$nm=$_POST[&#39;name&#39;]; 
$age=$_POST[&#39;age&#39;]; 
echo "<strong>姓名:".$nm.", ".$age."岁</strong>"; 
?> 
</div>  
</body>   
</html>

在上面的代码中,我们创建了一个表单,该表单接受用户的名称和年龄,并在提交数据时使用$ _POST超级全局变量访问数据。

由于每个超全局变量都是一个数组,因此它可以存储多个值。因此,我们从$ _POST变量中检索名称和年龄,并将它们存储在$ nm和$ age变量中。

效果图:

What are super global variables in PHP? how to use?

$ _GET

$ _GET是一个超级全局变量,用于在提交数据后从HTML表单中收集数据。当表单使用“GET”方法获取传输数据时,数据在查询字符串中可见,因此不隐藏值。$ _GET超级全局数组变量存储URL中的值。

下面我们就来看看如何使用$ _GET:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body bgcolor="cyan">    
 <!--demonstration of $_GET-->
 <h1><font color="red">Historic Monument</font></h1>
 <a href="picture.php?name=QutubMinar&city=Delhi"><img src="qutubminar.jpg" alt="Qutubminar"    style="max-width:90%" width="200"/></a>

</body>
</html>

我们实际上只看到了一半的逻辑,让我们理解上面的代码,然后看看其余的逻辑。

在上面的代码中,我们创建了一个QutubMinar的超链接图像,它将把我们带到picture.php页面,并带有参数名称=“QutubMinar”和city =“Delhi”。

也就是说,当我们点击QutubMinar的小图片时,我们将带到下一页picture.php以及参数。

由于默认方法是get,因此这些参数将使用get方法传递到下一页,它们将在地址栏中显示。

当我们想要将值传递给地址时,使用问号(?)将它们附加到地址。

然后将参数写为问号(?)后面的键值对,如以下语句中所指定:

<a href="picture.php?name=QutubMinar&city=Delhi"><img src="qutubminar.jpg" alt="Qutubminar"    style="max-width:90%" width="200"/></a>

这里的参数name = QutubMinar会附加到地址。

如果我们想要添加更多值,我们可以在每个键值对之后使用&符号(&)添加它们,类似于在name参数之后使用&符号添加city = Delhi。

现在,在点击QutubMinar的图像之后,我们希望显示picture.php页面,并显示参数值。

所以让我们在picture.php页面中为它编写代码。

<head>
<title>QutubMinar</title>
</head>
<body bgcolor="cyan">
 
 <?php
 $nm=$_GET[&#39;name&#39;];
 $city=$_GET[&#39;city&#39;];
 echo "<h1>       this is ".$nm." of ".$city."</h1><br><br>";
 
 ?>
 <img src="qutubminar.jpg" alt="QutubMinar"    style="max-width:90%" width="500"/>
 
</body>
</html>

在这里,我们使用超全局数组变量$ _GET接收参数name和city的值,并分别存储在变量$ nm和$ city中。

然后使用echo语句显示它们。

QutubMinar的放大图像如下所示。

首先让我们看一下index.php页面运行时的输出。

What are super global variables in PHP? how to use?

现在,当我们点击QutubMinar的超链接图像时,我们得到以下输出:

What are super global variables in PHP? how to use?

$ _SESSION

$ _SESSION是一个预定义的超全局数组变量,用于记住用户的状态以及他想要在整个会话中检索的值。

以前,对服务器的每个请求都是单独的请求。HTML是一种无状态协议。这意味着它无法记住网站中用户访问的页面。但今天我们使用网站,用户可以让网站记住访问过的网页或之前做过的事情,例如购物网站。

会话(SESSION)的设计原因与此相同;会话可以记住用户登录到注销期间的所有操作。

$ _SESSION数组变量用于存储来自任何页面的值,并在任何其他页面中检索它们,而不在URL中传递它们。

在存储任何变量之前,使用session_start()声明启动会话。

$ _COOKIE

$ _COOKIE是一个超级全局数组变量,用于检索cookie的值。

Cookie是由服务器创建的用于标识用户的小文件。每当用户在互联网上请求某些信息时,该请求就会发送到服务器。如果用户第一次连接到该服务器,则服务器识别他的信息并创建具有给用户的标识号的小文件,并将其附加到发送给用户的响应并存储在用户的计算机中。

在此之后,每当用户向该服务器发送请求时,它都携带cookie文件,由此服务器发送响应而不再检查服务器认证。

$ _FILES

$ _FILES是一个超级全局数组变量,用于将上载文件的信息提供给服务器。我们可以检查上传的文件是否已成功上传;也可以使用$ _FILES变量检索文件的详细信息。

$ _ENV

$ _ENV有助于从Web服务器获取/访问环境变量。

PHP中的环境变量是允许脚本从服务器动态获取某些信息的变量。它支持在不断变化的服务器环境中的脚本灵活性。

使用$ _ENV访问任何环境变量的语法如下:

$_ENV[“variable_name”];

例如,我们可以访问temp_pwd变量,如下所示:

<?php
 echo “Temporary Password: ”.$_ENV[“temp_pwd”];
?>

总结:

在这些超级全局数组变量中,变量$ _GET,$ _POST,$ _ SERVER,$ _SESSION被最多使用。$ _REQUEST变量可以执行$ _GET,$ _POST和$ _COOKIE的工作,但需要避免使用它,因为它可能导致安全问题。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

Component Description
$ _ SERVER [ 'PHP_SELF'] Return the file name of the currently executing script.

The above is the detailed content of What are super global variables in PHP? how to use?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn