`

PHP全局变量详解

阅读更多

【前言】

   这里总结下PHP的全局变量

   超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量

         PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。这些超全局变量是:

          $GLOBALS,$_SERVER,$_REQUEST,

          $_POST,$_GET,$_FILES,

          $_ENV,$_COOKIE,$_SESSION

   下面依次介绍个别:

【列表】

   ①$GLOBALS — 引用全局作用域中可用的全部变量;

   ②$_SERVER 保存关于报头、路径和脚本位置的信息;

   ③$_REQUEST 用于收集 HTML 表单提交的数据;

   ④$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据,也常用于传递变量;

   ⑤$_GET常用于收集提交 HTML 表单 (method="get") 之后的表单数据,也可以收集 URL 中的发送的数据

 

【主体】

   ①$GLOBALS — 引用全局作用域中可用的全部变量

    $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)

PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; //由于 z 是 $GLOBALS 数组中的变量,因此在函数之外也可以访问它
?>
   ②$_SERVER 保存关于报头、路径和脚本位置的信息,例:
<?php
echo "<br>当前执行脚本的文件名是".$_SERVER['PHP_SELF'];
?>
   这里我用了并置运算符 (.) ,用于把两个字符串值连接了起来,下表列出能够在 $_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。

 

   ③$_REQUEST 用于收集 HTML 表单提交的数据

   下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:

<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; 
?>

 

   ④$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据,也常用于传递变量

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

<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; 
?>

 

   ⑤$_GET常用于收集提交 HTML 表单 (method="get") 之后的表单数据,也可以收集 URL 中的发送的数据

      假设我们有一张页面含有带参数的超链接:

<html>
<body>
<a href="demo.php?subject=海贼王&kind=漫画">搜索</a>
</body>
</html>

     当用户点击链接,参数 "subject" 和 "web" 被发送到 "demo.php",然后就能够通过 $_GET 在 "demo.php" 中访问这些值了

    下面的例子是 "demo.php" 中的代码:

<html>
<body>
<?php 
echo "我搜索的是" . $_GET['subject'] . "的" . $_GET['kind'];
?>
</body>
</html>

 

 

【总结】

①看PHP表单,可以学到更多有关 $_POST 和 $_GET 的知识

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    PHP—全局变量.docx

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

    PHP超级全局变量详解.md

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

    php 超全局变量

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

    supesite全局变量

    SupeSite 全局变量详解 SupeSite 全局变量是 SupeSite 系统中非常重要的概念,这些全局变量使某些操作变得很简单,也使我们在使用数据时更加容易。SupeSite 全局变量主要有以下几个: 1. $_SCONFIG:可以理解为 ...

    PHP预定义变量9大超全局数组用法详解

    PHP中的超全局变量是指那些在脚本的任何地方都可用的数组,这意味着它们不受作用域限制。PHP中有9个预定义的超全局变量,这些变量分别是$_SERVER、$_GET、$_POST、$_COOKIE、$_FILES、$_ENV、$_REQUEST、$_SESSION和...

    PHP中的变量作用域

    超全局变量是PHP自带的一系列全局变量,它们在脚本的任何位置都是可用的。包括但不限于`$_GET`、`$_POST`、`$_SESSION`等。这些变量主要用于接收HTTP请求中的数据。例如: ```php &lt;?php echo $_GET['name']; // ...

    PHP的变量类型和作用域详解

    PHP中变量的作用域可以分为:超全局(全局变量的特殊类型,在局部范围里可直接使用),全局,局部,静态(是局部变量的特殊类型)在PHP中,全局变量实际上是静态全局变量,如果不用unset显式的释放,那么等脚本运行结束...

    php笔试面试题详解大全

    6. **获取用户IP和HTTP信息**:在PHP中,`$_SERVER`全局变量提供关于HTTP请求的信息。`$_SERVER["REMOTE_ADDR"]`是客户端的IP地址,`$_SERVER["QUERY_STRING"]`是URL中的查询字符串,`$_SERVER["DOCUMENT_ROOT"]`是...

    PHP的变量、常量学习笔记

    如未使用 `global`,则函数内部对全局变量的引用将被视为局部变量,这可能导致意外的结果。示例代码: ```php $a = 1; $b = 2; function sum() { global $a, $b; $b = $a + $b; } sum(); echo $b; // 输出: 3 `...

    php基础入门详解(含视频学习地址).pdf

    10. 超级全局变量:讲解了PHP中可用的九个超级全局变量,它们可以在脚本的任何地方访问,如$_GET, $_POST, $_SESSION等。 11. 魔术常量:介绍了PHP中八个魔术变量,它们在特定情况下自动可用,如__LINE__(当前代码...

    php技巧php技巧

    20. **未使用的全局变量**:声明未使用的全局变量会降低性能,因为PHP可能检查其存在性。 21. **方法数量与性能**:类中定义的方法数量对方法性能影响不大。 22. **继承中的方法性能**:子类中的方法执行速度优于...

    PHP配置文件详解

    ### PHP配置文件详解 #### 一、PHP安全模式配置 **1.1 开启安全模式** PHP的安全模式是一项内置的安全特性,旨在限制某些敏感函数的使用,并增强文件系统的安全性。默认情况下,`php.ini` 文件中的安全模式是关闭...

    PHP正在进行时-变量详解及字符串动态插入变量

    2. 全局变量:在函数外部声明的变量,可以在整个脚本的任何地方访问。但在函数内部修改全局变量时,需要使用`global`关键字显式声明。 3. 函数参数:函数参数可以按值传递或按引用传递。按值传递时,函数内部的变量...

    PHP静态成员变量和非静态成员变量详解

    1. 静态全局变量仅在定义它的文件内可见,不能被其他文件直接访问,提供了一种局部范围内的数据共享方式。 2. 静态局部变量在函数内部保持其值,即使函数被多次调用。这意味着它们在内存中持久存在,但作用域仍限于...

    php的常量和变量实例详解

    例如,我们可以利用这些魔术变量来创建一个全局的根目录常量: ```php define('ROOT', str_replace('a.php', '', __FILE__)); echo ROOT; ``` 这里,`__FILE__`返回当前文件的路径,`str_replace`函数则用来替换...

    PHP_表单安全详解

    表单安全主要包括对用户输入的验证、错误处理、防止SQL注入、XSS攻击以及管理全局变量等方面。 首先,用户输入不做验证是导致安全问题的主要原因之一,占比42.60%。这意味着,如果没有对用户的表单提交进行严格的...

    php中关于引用(&)详解.docx

    在PHP中,`global`关键字用于声明一个变量为全局变量。实际上,它是在当前作用域内创建了一个指向全局变量的引用。 **示例代码**: ```php &lt;?php $var = "test"; function myFunction() { global $var; echo $...

    PHP 编程规范详解

    - **全局变量命名**:全局变量以大写字母开头,如`$GLOBAL_PATH`,并推荐使用`global`关键字来声明。 - **常量命名**:常量全大写,可使用下划线分隔单词,如`CONST_CATEGORY_NAME`。建议以`CONST`开头,然后是...

    php获取不到自定义header参数原因详解

    特别是,当涉及到自定义Header时,PHP会将所有的HTTP头转换为环境变量存储在`$_SERVER`超全局数组中。对于自定义的Header,其名称前通常会加上`HTTP_`前缀,且所有字符都会转换为大写,同时,如果原始Header名称中...

Global site tag (gtag.js) - Google Analytics