Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind superglobale Variablen in PHP? Wie benutzt man?

Was sind superglobale Variablen in PHP? Wie benutzt man?

青灯夜游
青灯夜游Original
2019-02-13 16:49:447225Durchsuche

In PHP sind einige Array-Variablen vordefiniert. Auf diese Variablen kann jederzeit überall im Skript zugegriffen werden. Dieser Artikel wird Ihnen diese superglobalen Variablen vorstellen und die Verwendung dieser Variablen kurz verstehen. Ich hoffe, dass er Ihnen hilfreich sein wird. [Video-Tutorial-Empfehlung: PHP-Tutorial]

Was sind superglobale Variablen in PHP? Wie benutzt man?

Was sind superglobale Variablen?

Superglobale Variablen sind integrierte, speziell definierte Array-Variablen in PHP. Sie können superglobale Variablen verwenden, um jederzeit und überall im Skript auf Informationen zuzugreifen. Das heißt, unabhängig vom Umfang können problemlos Informationen über die Anfrage oder ihren Kontext eingeholt werden.

Auf superglobale Variablen kann von jeder Funktion, Klasse oder Datei aus zugegriffen werden, ohne dass eine spezielle Aufgabe wie die Deklaration einer globalen Variablen usw. ausgeführt werden muss. Sie werden hauptsächlich zum Speichern und Abrufen von Informationen von einer Seite zur anderen in der Anwendung verwendet.

Das Folgende ist eine Liste der in PHP verfügbaren superglobalen Variablen:

● $ GLOBALS

● $ _ SERVER

● $ _Request

● $ _get

● $ _ Post

● $ _Session

● $ _Cookie

● $_Files

● $ _ENV

Als nächstes stellen wir einige der superglobalen Variablen im Detail vor.

$ GLOBALS

$ GLOBALS ist eine super globale Variable, die alle im Skript deklarierten Variablen speichert und für den Zugriff auf eine beliebige Stelle im Skript verwendet werden kann Skript für eine beliebige Variable.

PHP speichert alle globalen Variablen im Array $GLOBALS[]. Dieses Array verfügt über einen Index, der den Namen der globalen Variablen enthält und auf den über diesen Namen zugegriffen werden kann.

Sehen wir uns an, wie man $GLOBALS verwendet:

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

Im obigen Code werden zwei globale Variablen $x und $y deklariert und ihnen werden die Werte 300 und 200 zugewiesen . Definieren Sie dann die Funktion multiplication(), um die Werte $x und $y zu multiplizieren und in einer anderen Variablen $z zu speichern, die im Array GLOBAL definiert ist.

Wir wissen, dass auf die Variablen $x und $y in der Funktion multiplication() nicht zugegriffen wird, da sie dort nicht deklariert sind, aber wir können dies tun, indem wir über die Array-Variable $GLOBALS darauf zugreifen.

Beim Aufruf der Funktion quadrat() wird die Multiplikation der Werte der Variablen $x und $y durchgeführt und kann dann direkt angezeigt werden.

Das erhaltene Multiplikationsergebnis, weil die Variable $z auch in der Array-Variable $GLOBALS vorhanden ist.

Ausgabe:

Was sind superglobale Variablen in PHP? Wie benutzt man?

$ _SERVER

$ _SERVER ist ein PHP Super Global Variable, die Informationen über den Titel (Header), den Pfad und den Speicherort des Skripts speichert, d. h. sie speichert Informationen über das Web und seine Anfragen. Einige dieser Elemente werden verwendet, um Informationen aus der superglobalen Variablen $_SERVER zu erhalten.

In der Variablen $_SERVER werden viele Informationselemente verwendet. Einige davon sind unten aufgeführt:

下面我们就来看看如何使用$ _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>"
?>

输出:

Was sind superglobale Variablen in PHP? Wie benutzt man?

在上面的代码中,我们使用$ _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>

效果图:

Was sind superglobale Variablen in PHP? Wie benutzt man?

在上面的代码中,我们创建了一个表单,该表单将用户名作为输入,并在单击提交按钮时输出显示其名称。我们使用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变量中。

效果图:

Was sind superglobale Variablen in PHP? Wie benutzt man?

$ _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页面运行时的输出。

Was sind superglobale Variablen in PHP? Wie benutzt man?

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

Was sind superglobale Variablen in PHP? Wie benutzt man?

$ _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中文网相关教程栏目!!!

Das obige ist der detaillierte Inhalt vonWas sind superglobale Variablen in PHP? Wie benutzt man?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn