PHP 超全局变量


2021年12月17日, Learn eTutorial
1841

在本 PHP 教程中,您将学习有关 PHP 中超全局变量的所有知识。我们将详细讨论全局变量和各种类型的超全局变量 $GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION。

PHP中的超全局变量是什么?

在 PHP 中,超全局变量是内置的预定义全局变量。超全局变量可以在整个脚本中找到。这些变量可以从任何函数、类或文件访问,而无需进行任何额外的操作,例如定义任何全局变量等。它们主要用于应用程序中,以便在页面之间存储和检索信息。

PHP中的各种超全局变量

1.    $GLOBALS
2.    $_SERVER
3.    $_REQUEST
4.    $_GET
5.    $_POST
6.    $_SESSION
7.    $_COOKIE
8.    $_FILES

PHP中的 $GLOBALS 是什么?

$GLOBALS 在 PHP 中是一个超全局变量,可以在脚本中的任何位置访问。PHP 将所有全局变量存储在 $GLOBALS[] 数组中,其中索引包含可以访问的全局变量的名称。


$x = 15;
$y = 53; 
function sum() {
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
sum();
echo $z;

输出


68

PHP中的 $_SERVER 是什么?

$_SERVER 是 PHP 中的一个超全局变量,包含有关标头、路径和脚本位置的信息。其中一些组件用于从全局变量 $_SERVER 中检索数据。

  •  $_SERVER[‘PHP_SELF’] - 用于返回当前执行脚本的文件名。         
  • $_SERVER[‘SERVER_NAME’] - 用于返回托管该站点的服务器的名称。
  • $_SERVER[‘HTTP_HOST’] - 用于返回当前请求的宿主标头。
  • $_SERVER[‘SCRIPT_NAME’] - 用于返回当前脚本的路径。

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'];

输出


/files/new/server.php
localhost
localhost
https:///files/new/
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
/files/new/server.php

PHP中的 $_REQUEST 是什么?

$_REQUEST 是一个超全局变量,用于在 HTML 表单提交后收集数据。$_REQUEST 很少使用,因为 $_POST 和 $_GET 提供相同的功能并且更常用。


<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fName">
  <input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_REQUEST['fName'];
    if (empty($name)) {
        echo "Name field is empty";
    } else {
        echo " The entered name is $name";
    }
}
?>
</body>
</html>

输出

PHP - For Loop

PHP中的 $_GET 是什么?

$_GET 是一个超全局变量,用于在 HTML 表单提交后收集数据。当表单使用 get 方法发送数据时,数据将包含在查询字符串中,因此值不会被隐藏。超全局数组变量 $_GET 包含通过 URL 传递的值。


<!DOCTYPE html>
<html>
<body> 
<form method="get" action="getsup.php">
  Name: <input type="text" name="fName">
  <input type="submit" name="submit">
</form>
<?php
if (isset($_GET['submit'])) {
    $name = $_GET['fName'];
    echo " The entered name is $name";
}
?>
</body>
</html>

输出


PHP - For Loop

PHP中的 $_POST 是什么?

$_POST 是一个超全局变量,用于在 HTML 表单提交后收集数据。由于当表单使用 post 方法传输数据时,数据不可在查询字符串中访问,因此以这种方式维护了安全标准。


<!DOCTYPE html>
<html>
<body>
<form method="post">
  Name: <input type="text" name="fName">
  <input type="submit" name="submit">
</form>
<?php
if (isset($_POST['submit'])) {
    $name = $_POST['fName'];
    echo " The entered name is $name";
}
?>
</body>
</html>

输出


PHP - For Loop

PHP中的 $_SESSION 是什么?

$_SESSION 变量是 PHP 中的一个超全局变量,它在用户访问网站时(从打开到关闭)保留和提供有关用户的信息。每当有人访问网站时,都会启动一个会话。会话中的值可以在网站的多个页面中访问。
要开始一个会话,我们使用函数 session_start()
要结束一个会话,我们使用函数 session_destroy()

PHP中的 $_COOKIE 是什么?

Cookie 是服务器放在用户计算机上的一个小型文件。它标识了用户的身份。每当发出服务器请求时。通常,Cookie 会随请求一起发送。PHP 中的 `setcookie()` 函数用于创建 Cookie。 


<?php
    $cookie_name = "username";
    $cookie_value = "John";
    setcookie($cookie_name, $cookie_value, time()+(86400*30),"/");
?>    
    

输出


PHP - For Loop

PHP中的 $_FILES 是什么?

$_FILES 是 PHP 中的一个变量,用于存储通过 HTTP POST 方法上传的对象。该数组的键是上传文件的字段名称和访问数据。例如,$_FILES[fileUploaded][name] 从上传的文件属性中获取正在上传的文件的名称。 
$_FILES 包含多个元素,如下所示

  •     $_FILES[‘file’][‘name’] - 用于保存要上传的文件的原始名称。
  •     $_FILES[‘file’][‘type’] - 指的是要上传的文件的类型。
  •    $_FILES[‘file’][‘size’] - 包含文件的字节大小。
  •    $_FILES[‘file’][‘tmp_name’] - 指的是存储在服务器上的上传文件的临时文件名。
  •    $_FILE[‘file’][‘error’] - 包含文件上传相关的错误代码。