c语言编程笔录

首页 >   > 笔记大全

笔记大全

PHP超级全局变量怎么使用

更新时间:2023-09-11
Super Globals是在PHP中内置的变量中最为重要的一类。这些变量被称为“超级全局变量”,因为它们可以从脚本的任何地方访问,无论是在函数内部、类内部还是在全局作用域内。超级全局变量提供了一些通用信息,如HTTP头信息、服务器上调用脚本的URL、请求的查询字符串和表单数据。PHP提供了七个超级全局变量,分别是`$GLOBALS`、`$_SERVER`、`$_GET`、`$_POST`、`$_COOKIE`、`$_FILES`、`$_REQUEST`。接下来我会逐一进行介绍。 ## $GLOBALS `$GLOBALS`是PHP中预定义的一个超级全局变量,该变量是一个包含全局变量的数组,变量名是数组的键,变量值是数组的值。这意味着您可以使用它在一个函数或方法作用域之外访问全局变量。 下面是一个使用 `$GLOBALS` 的示例,展示如何在函数内部访问全局变量:
  $x = 10;
  $y = 20;

  function sum() {
    global $x, $y;
    $GLOBALS['z'] = $x + $y;
  }

  sum();

  echo $z; // Output: 30

在上面的示例中,我们首先定义了两个全局变量 `$x` 和 `$y`,然后定义了一个名为 `sum()` 的函数,在函数内部使用了 `global` 关键字来引用全局变量 `$x` 和 `$y`。最后,我们在 `sum()` 函数内部将 `$x` 和 `$y` 相加赋值给一个新的 `$z` 变量,并将 `$z` 存储在 `$GLOBALS` 数组中。在函数调用之后,我们使用 `$z` 的全局作用域访问 `$z`,并获得了正确的答案 30。 ## $_SERVER `$_SERVER` 是一个超级全局变量,它包含了与当前运行环境有关的信息,如:当前执行脚本的文件名,请求的方法,服务器的IP地址等。`$_SERVER` 变量包含了能够让您确认脚本被哪个Web服务器调用的信息。 以下是一个使用 `$_SERVER` 变量的示例,展示了如何获取当前所在脚本的URL:
  echo '当前所在脚本文件名:' . $_SERVER['PHP_SELF'];
此代码会输出一个字符串,其中包含了当前所在脚本的文件名和路径。 ## $_GET `$_GET` 是一个超级全局变量,它使用HTTP GET方法发送的令牌信息,即查询字符串。使用`$_GET`变量可以将传递到脚本中的查询字符串参数进行处理,并从其中提取数据。 下面是一个使用 `$_GET` 变量的示例,展示了如何从 URL 中获取参数:
  if( isset($_GET['name']) ){
      echo '参数name的值:' . $_GET['name'];
  }
在上面的示例中,我们检查了是否已通过 URL 传递了名为 `name` 的参数,并输出了参数的值。我们可以通过以下的URL将参数传递给脚本/program.php ``` http://example.com/program.php?name=John ``` 此代码将输出 `参数name的值:John`。 ## $_POST 与 `$_GET` 不同,`$_POST` 是一个超级全局变量,它提供了处理与HTML表单通过POST方法传递的数据的方法。当用户提交HTML表单时,数据将提交到指定的处理脚本,数据可以使用 `$_POST` 字符串变量进行访问。 可以将 `$_POST` 视为处理通过HTML表单提交的数据的标准方式。下面是一个使用 `$_POST` 变量的示例,展示如何处理通过表单提交的数据。 ```php
名字:

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST['name']; if (empty($name)) { echo "名字是必填项"; } else { echo '提交的名字为:' . $name; } } ?> ``` 在上面的例子中,我们首先定义了一个表单,当用户提交表单时,表单数据将被发送到与表单相关联的处理脚本(即当前脚本)。在处理脚本中,我们首先检查是否已使用POST方法提交了表单,然后获取名为 `$_POST['name']` 的输入字段的值,并将其存储在 `$name` 变量中。最后,我们检查是否已提交名字,并输出当前输入的名字。 综上所述,PHP的七个超级全局变量都是在全局范围内使用的,它们可以从任何位置访问,为处理从POST表单,GET表单甚至非表单请求变得更加容易。 我们必须小心使用这些变量,并尽可能保护其数据,以确保应用程序的安全性和可靠性。