什么是超等全局(Superglobals)变量?
超等全局变量是PHP中内置的、迥殊定义的数组变量。它们能够随时在剧本中的任何位置运用超等全局变量来接见信息。即,不论作用域是什么,都能够轻松猎取有关要求或其上下文的信息。
超等全局变量能够从任何函数、类或任何文件接见,而无需实行任何特殊使命,如声明任何全局变量等。它们重要会用于存储和猎取应用程序中从一个页面到另一个页面等的信息。
下面是PHP中可用的超全局变量列表:
● $ GLOBALS
● $ _ SERVER
● $ _REQUEST
● $ _GET
● $ _ POST
● $ _SESSION
● $ _COOKIE
● $ _FILES
● $ _ENV
接下来我们来细致引见一下个中的一些超等全局变量。
$ GLOBALS
$ GLOBALS是一个超全局变量,它存储剧本中声明的一切变量,可用于接见剧本中任何位置的任何变量。
PHP将一切全局变量存储在数组$ GLOBALS []中,这个数组有一个索引,用于保留全局变量称号,能够运用该称号举行接见。
下面我们就来看看怎样运用$ GLOBALS:
<?php $x = 300; $y = 200; function multiplication(){ $GLOBALS['z'] = $GLOBALS['x'] * $GLOBALS['y']; } multiplication(); echo $z; ?>
在上面的代码中,声清楚明了两个全局变量$ x和$ y,并赋值300和200。然后定义函数multiplication()以将$ x和$ y值的相乘并存储在GLOBAL数组中定义的另一个变量$ z中。
我们晓得变量$ x和$ y不会在函数multiplication()中被接见,因为它们未在个中声明;但我们能够经由过程运用$ GLOBALS数组变量接见它来完成。
当挪用函数square()时,就会实行变量$ x和$ y值的相乘;然后能够直接显现。
取得的相乘效果,因为变量$z也存在于$ GLOBALS数组变量中。
输出:
$ _SERVER
$ _SERVER是一个PHP超等全局变量,用于存储有关题目(标头),途径和剧本位置的信息,即它存储有关Web及其要求的信息。个中的一些元素用于从超全局变量$ _SERVER猎取信息。
$ _SERVER变量中运用了很多信息元素。个中一些列表以下:
元件 | 形貌 |
$ _ SERVER [ 'PHP_SELF'] | 返回当前正在实行的剧本的文件名。 |
$ _ SERVER [ 'SERVER_ADDR'] | 返回主机服务器的IP地点。 |
$ _ SERVER [ 'SERVER_NAME'] | 返回主机服务器的称号。 |
$ _ SERVER [ 'QUERY_STRING'] | 假如经由过程查询字符串接见页面,则返回查询字符串。 |
$ _ SERVER [ 'REQUEST_TIME'] | 返回要求最先的时候戳。 |
下面我们就来看看怎样运用$ _SERVER:
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; echo "<br>" ?>
输出:
在上面的代码中,我们运用$ _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['PHP_SELF'];?>"> 用户名: <input type="text" name="fname"> <button type="submit">提交</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = htmlspecialchars($_REQUEST['fname']); if(empty($name)){ echo "用户名为空"; } else { echo "用户名为:".$name; } } ?> </div> </body> </html>
效果图:
在上面的代码中,我们建立了一个表单,该表单将用户名作为输入,并在单击提交按钮时输出显现其称号。我们运用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['PHP_SELF'];?>"> <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['name']; $age=$_POST['age']; echo "<strong>姓名:".$nm.", ".$age."岁</strong>"; ?> </div> </body> </html>
在上面的代码中,我们建立了一个表单,该表单吸收用户的称号和岁数,并在提交数据时运用$ _POST超等全局变量接见数据。
因为每一个超全局变量都是一个数组,因而它能够存储多个值。因而,我们从$ _POST变量中检索称号和岁数,并将它们存储在$ nm和$ age变量中。
效果图:
$ _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" height="200" 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" height="200" width="200"/></a>
这里的参数name = QutubMinar会附加到地点。
假如我们想要增加更多值,我们能够在每一个键值对以后运用&标记(&)增加它们,类似于在name参数以后运用&标记增加city = Delhi。
如今,在点击QutubMinar的图象以后,我们愿望显现picture.php页面,并显现参数值。
所以让我们在picture.php页面中为它编写代码。
<head> <title>QutubMinar</title> </head> <body bgcolor="cyan"> <?php $nm=$_GET['name']; $city=$_GET['city']; echo "<h1> this is ".$nm." of ".$city."</h1><br><br>"; ?> <img src="qutubminar.jpg" alt="QutubMinar" height="400" width="500"/> </body> </html>
在这里,我们运用超全局数组变量$ _GET吸收参数name和city的值,并离别存储在变量$ nm和$ city中。
然后运用echo语句显现它们。
QutubMinar的放大图象以下所示。
起首让我们看一下index.php页面运行时的输出。
如今,当我们点击QutubMinar的超链接图象时,我们获得以下输出:
$ _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的事情,但须要防止运用它,因为它能够致使平安问题。
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是PHP中的超等全局变量是什么?怎样运用?的细致内容,更多请关注ki4网别的相干文章!