`

PHP 全局变量 - 超全局变量

    博客分类:
  • php
php 
阅读更多
PHP 全局变量 - 超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
本节会介绍一些超全局变量,并会在稍后的章节讲解其他的超全局变量。
$GLOBALS — 引用全局作用域中可用的全部变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
下面的例子展示了如何使用超级全局变量 $GLOBALS:
实例
<?php 
$x = 75; 
$y = 25;
 
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>
运行实例
在上面的例子中,由于 z 是 $GLOBALS 数组中的变量,因此在函数之外也可以访问它。
PHP $_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
下面的例子展示了如何使用 $_SERVER 中的某些元素:
实例
<?php 
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'];
?>
运行实例
下表列出了您能够在 $_SERVER 中访问的最重要的元素:
元素/代码	描述
$_SERVER['PHP_SELF']	返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE']	返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR']	返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']	返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE']	返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL']	返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD']	返回访问页面使用的请求方法(例如 POST)。
$_SERVER['REQUEST_TIME']	返回请求开始时的时间戳(例如 1577687494)。
$_SERVER['QUERY_STRING']	返回查询字符串,如果是通过查询字符串访问此页面。
$_SERVER['HTTP_ACCEPT']	返回来自当前请求的请求头。
$_SERVER['HTTP_ACCEPT_CHARSET']	返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST']	返回来自当前请求的 Host 头。
$_SERVER['HTTP_REFERER']	返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
$_SERVER['HTTPS']	是否通过安全 HTTP 协议查询脚本。
$_SERVER['REMOTE_ADDR']	返回浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']	返回浏览当前页面的用户的主机名。
$_SERVER['REMOTE_PORT']	返回用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']	返回当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']	该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER['SERVER_PORT']	Web 服务器使用的端口。默认值为 “80”。
$_SERVER['SERVER_SIGNATURE']	返回服务器版本和虚拟主机名。
$_SERVER['PATH_TRANSLATED']	当前脚本所在文件系统(非文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME']	返回当前脚本的路径。
$_SERVER['SCRIPT_URI']	返回当前页面的 URI。
PHP $_REQUEST
PHP $_REQUEST 用于收集 HTML 表单提交的数据。
下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:
实例
<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>

</body>
</html>
运行实例
PHP $_POST
PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:
实例
<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_POST['fname']; 
echo $name; 
?>

</body>
</html>
运行实例
PHP $_GET
PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
假设我们有一张页面含有带参数的超链接:
<html>
<body>

<a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>

</body>
</html>
当用户点击链接 "Test $GET",参数 "subject" 和 "web" 被发送到 "test_get.php",然后您就能够通过 $_GET 在 "test_get.php" 中访问这些值了。
下面的例子是 "test_get.php" 中的代码:
实例
<html>
<body>

<?php 
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
分享到:
评论

相关推荐

    php 超全局变量

    ### PHP 超全局变量详解 #### 一、概述 在 PHP 编程语言中,超全局变量是指那些不需要在函数或方法内进行显式声明即可使用的特殊变量。这些变量通常用于存储请求环境中的信息(如 HTTP 请求参数、服务器变量等),...

    Discuz_$_G全局变量

    Discuz是一款广泛应用于社区论坛建设的开源软件,其核心组件之一是$_G全局变量。这个全局变量在Discuz系统中扮演着至关重要的角色,它存储了论坛运行过程中的各种信息,便于开发者在模板和插件开发中快速获取和操作...

    计算机后端-PHP视频教程. php与mysql加强- 04. php加强45-超全局变量.wmv

    计算机后端-PHP视频教程. php与mysql加强- 04. php加强45-超全局变量.wmv

    静态库和动态库里的全局变量(或类的静态成员变量)共享和独立的问题

    在A中定义有全局变量X(或类的静态成员变量),则在动态库B中访问的X,与可执行程序C中访问的X是同一个变量还是两个不同的变量? 答案:是两个不同的变量。 2. 工程中包含动态库A,动态库B,可执行程序C。C依赖于A和...

    PHP全局变量与超级全局变量区别分析

    本文分析了PHP全局变量与超级全局变量区别。分享给大家供大家参考,具体如下: 全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似...

    全局变量中$GLOBALS['']和global的区别

    总结起来,`global`关键字和`$GLOBALS`数组都是用来处理PHP全局变量的方式,但它们的使用场景和效果略有不同。`global`适用于在函数内部引用全局变量,而`$GLOBALS`数组可以直接读写全局变量,包括在函数内部进行...

    PHP超级全局变量详解.md

    ### PHP 超全局变量详解 #### 一、$GLOBALS `$GLOBALS`是一个非常重要的超全局变量,它允许开发者在PHP程序中访问全局作用域内的所有变量。具体来说,`$GLOBALS`实际上是一个数组,它包含了所有在全局范围内定义的...

    PHP—全局变量.docx

    **PHP全局变量详解** 在PHP编程中,变量的范围是一个重要的概念,它决定了变量在哪里可以被访问和使用。全局变量是一种特殊类型的变量,其作用范围不仅限于当前的函数或代码块,而是整个脚本。这使得它们在处理跨...

    PHP程序设计-3期(KC016) 经验技巧2-3 全局变量.doc

    除了`global`关键字,PHP还提供了一个超全局数组`$GLOBALS`,它允许你直接访问所有全局变量。使用`$GLOBALS`,你可以像下面这样操作全局变量: ```php $name = "why"; function changeNameUsingGlobals() { $...

    PHP程序设计-3期(KC016) 常见问题2-3 全局变量.docx

    `$GLOBALS` 是一个超全局数组,它包含了所有全局变量的引用。这意味着你可以通过 `$GLOBALS[index]` 来访问或修改任何全局变量,其中 `index` 是你要访问的变量名。 例如,在提供的实例中: ```php $x = 75; $y = ...

    全局变量与 `global` 关键字:在 PHP 函数中的使用与最佳实践

    在 PHP 开发中,全局变量可以在脚本的任何位置访问和修改。然而,在函数中直接访问全局变量可能会导致代码难以理解和维护。PHP 提供了 global 关键字,允许在函数内部访问全局变量。本文将详细探讨 global 关键字的...

    php全局变量大全有用的php文档

    以下是对给定文件中提到的一些关键PHP全局变量的详细解释: 1. **$_SERVER**: 这是一个超级全局变量,包含了服务器和客户端环境的大量信息。其中`HTTP_REFERER`用于追踪用户是从哪个页面点击过来的,`REMOTE_ADDR`...

    PHP超全局变量实现原理及代码解析

    超全局变量在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。 PHP 超全局变量 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $...

    PHP程序设计-3期(KC016) 拓展知识2-3 全局变量.doc

    在PHP程序设计中,全局变量是一种在整个脚本范围内都可访问的数据变量,它们不局限于函数或类的作用域。在扩展开发中,全局变量的使用和管理对于扩展功能的实现至关重要。这里我们将深入探讨如何在PHP扩展中定义和...

    Discuz!全局变量介绍

    全局变量介绍 #### 一、概述 在Discuz!系统中,全局变量是一种非常重要的数据结构,它们在整个程序运行过程中都是可见且可访问的。这些变量被广泛应用于模板修改、插件开发等多个方面,对于深入理解和定制Discuz!...

    PHP基础教程-PHP基础第四章(超全局变量)(ppt文档).pptx

    PHP的超全局变量`$_GET`和`$_POST`分别用于获取通过URL参数和HTTP POST方法传递的数据。`$_GET`数据通常显示在URL中,而`$_POST`数据则不会显示,因此`$_POST`通常用于传递敏感信息。`$_FILES`用于处理文件上传,它...

    Discuz!常用全局变量、函数参考手册和数据库每个表部分的作用[归类].pdf

    1. **全局变量**:全局变量在Discuz! 中用于存储和控制论坛的各种设置和用户权限。例如: - `$action` 代表当前的操作或动作,比如用户正在进行的浏览、发帖或回复等。 - `$adminid` 表示用户管理级别的ID,不同...

    Discuz! X2全局变量

    X2 全局变量解析与应用 在探讨Discuz! X2全局变量之前,我们首先简要了解一下Discuz!。Discuz!是一款非常流行的社区论坛软件,由Comsenz公司开发,主要使用PHP语言编写,支持MySQL数据库。它提供了丰富的功能和...

    PHP程序设计-3期(KC016) 课后习题2-3 全局变量.doc

    在PHP编程语言中,全局变量(global variables)是可以在整个脚本范围内访问的变量,不受函数或类方法的限制。然而,它们在函数内部的直接使用受到一定的限制,这一点在提供的课后习题中得到了体现。以下是对于这些...

Global site tag (gtag.js) - Google Analytics