PHP超全局数组(Superglobals)介绍

PHP超全局数组是指在整个脚本中生效的全局变量,它们是预定义好的变量,可以在任何可见的位置访问。PHP中有以下5个超全局数组:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_COOKIE
  • $_REQUEST
  • $_FILES
  • $_ENV

下面详细介绍一下每一个超全局数组:

1. $GLOBALS

$GLOBALS 是一个包含了全部变量的全局组合数组,变量名就是数组的键名,变量值就是键值。例如:

$a = 10;
$b = 20;

function sum() {
  global $a, $b;
  $GLOBALS['c'] = $a + $b;
}

sum();
echo $GLOBALS['c'];   // 输出 30

在上面的例子中,我们定义了两个变量 $a$b,在 sum() 函数中使用了 global 来访问 $a$b。然后我们将 $a + $b 的结果赋值给 $GLOBALS['c'] 变量,最后在函数外部就可以直接使用 $GLOBALS['c'] 变量来输出结果。

2. $_SERVER

$_SERVER 是一个包含了超级全局变量 $server 中的信息的数组。$server 中的信息包括了很多与服务器相关的元素,例如服务器目前运行的脚本名称,请求中的头信息,请求中的路径,客户端的 IP 地址,请求的方法等等。

// 示例:获取客户端的IP地址
echo $_SERVER['REMOTE_ADDR'];

3. $_GET

$_GET 是用来得到HTTP GET请求中的参数的数组。当我们使用 GET 方法向服务器提交请求时,服务器将参数信息按照 URL 参数的方式来传递。例如:

// URL 中有 ?name=John&age=30 参数
echo $_GET['name'];   // 输出 John
echo $_GET['age'];    // 输出 30

4. $_POST

$_POST 是用来得到 HTTP POST 请求中的参数。POST 请求的数据将存储在请求的主体中,而不是通过URL来进行传递。我们可以使用表单等方式来提交 POST 请求。例如:

// HTML 代码
<form action="submit.php" method="POST">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="submit" value="提交" />
</form>

// PHP 代码
echo $_POST['username'];    // 输出提交的用户名
echo $_POST['password'];    // 输出提交的密码

5. $_COOKIE

$_COOKIE 是由客户端发送到PHP的所有 cookie 的变量。当客户端与服务器进行交互时,服务器可以发送一个 cookie 给客户端,客户端将在下一次连接时将该 cookie 值自动发送回服务器。例如:

// 设置 cookie
setcookie('user', 'John', time()+3600);    // 有效期为1小时

// 获取 cookie
echo $_COOKIE['user'];

示例

示例一:使用 $_SERVER 打印出当前网站的URL和用户的浏览器信息

echo '当前网站的URL:' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '<br>';
echo '用户的浏览器信息:' . $_SERVER['HTTP_USER_AGENT'];

示例二:使用 $_GET 和 $_POST 获取表单的数据

// HTML 代码
<form action="submit.php" method="POST">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="submit" value="提交" />
</form>

// PHP 代码
echo $_GET['username'];   // 输出空,因为提交时使用了 POST 请求
echo $_POST['username'];  // 输出提交的用户名

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP超全局数组(Superglobals)介绍 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP数组实际占用内存大小原理解析

    让我来为你详细讲解一下PHP数组实际占用内存大小的原理解析。 1. 什么是PHP数组 PHP数组是一种复合结构类型,可以存储多个数据类型的值,并可以通过索引或关联键来访问这些值。PHP数组在开发中使用非常广泛,是PHP编程的重要组成部分。 2. PHP数组实际占用内存大小的原理 PHP数组底层是通过哈希表实现的,其中每个元素都包含一个键和一个值,键用于唯一标…

    PHP 2023年5月26日
    00
  • php array_slice函数的使用以及参数详解

    PHP array_slice 函数的使用以及参数详解 在 PHP 中,array_slice 函数可以用来获取数组的一部分,并返回这部分内容的新数组。 基本语法 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array 参数…

    PHP 2023年5月26日
    00
  • php 字符串中是否包含指定字符串的多种方法

    下面是关于“php字符串中是否包含指定字符串的多种方法”的攻略。 1. 使用strpos函数 strpos函数是PHP提供的原生函数,可以用于判断一个字符串中是否包含指定的字符串。 如果返回值不是false,代表包含;如果返回false,代表不包含。 strpos函数需要传入两个参数,第一个参数是源字符串,第二个参数是要查找的字符串。函数将返回要查找的字符串…

    PHP 2023年5月26日
    00
  • 使用纯php代码实现页面伪静态的方法

    以下是使用纯PHP代码实现页面伪静态的方法的攻略: 什么是伪静态? 伪静态是指将动态生成的页面通过重写URL的方式,使其看起来像静态文件,从而提高网站的搜索引擎友好度。 实现伪静态的步骤 服务器端进行URL重写 生成动态页面时去掉.php等文件扩展名 下面分别详细介绍这两个步骤 步骤1:服务器端进行URL重写 在Apache服务器上,可以通过.htacces…

    PHP 2023年5月23日
    00
  • PHP简单实现模拟登陆功能示例

    说明: 为了更好地演示示例,我将在本文中使用“PHP CURL”来模拟浏览器行为,并且将使用豆瓣网进行演示。 制定计划 在开始编写实现模拟登陆功能的示例之前,首先需要制定一个计划,确定以下信息: 确定要模拟登陆的网站; 确定要模拟登陆的用户信息,例如用户名和密码; 确定要提交的表单数据和请求方式; 确定使用哪个库或框架来实现模拟登陆。 在本示例中,我将使用“…

    PHP 2023年5月27日
    00
  • PHP实现的简单AES加密解密算法实例

    下面是对于“PHP实现的简单AES加密解密算法实例”的完整攻略,主要包括以下几个部分: 材料准备 算法实现 示例说明 1. 材料准备 在开始实现之前,需要确保已经安装好了 PHP 环境,并且可以使用 PHP 命令行工具进行脚本测试。 此外,我们还需要依赖一个 OpenSSL 扩展库,因此需要使用命令安装 OpenSSL 扩展库: $ sudo apt-get…

    PHP 2023年5月26日
    00
  • 简述PHP中trait的使用和同时引入多个trait时同名方法冲突的处理

    PHP的类是单一继承模式,也就是每个类只能继承一个父类(基类)。 但有时需要引入更多通用(共用)的方法,同时这些方法又不适合集成到基类。 那么这时,就需要使用其他方法来引入这些方法。其中trait,就是方法之一。 trait是PHP5.4之后出现的一种代码复用方法,形式和Class非常相似,同时可以随意组合任意引入。 trait一般在当前类和其同父类(基类)…

    PHP 2023年4月27日
    00
  • PHP使用流包装器实现WebShell的方法

    使用流包装器可以将任意的输入/输出以流的形式统一处理,包括文件、网络等。利用这种特性,可以使用PHP实现WebShell的功能,也就是通过Web界面控制目标服务器的命令执行。 准备工作 在使用流包装器实现WebShell功能之前,需要了解以下知识点。 流包装器 命令执行 shell命令的输出和错误信息 实现流程 设置表单,获取用户输入的命令 利用stream…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部