搜尋
首頁php教程php手册php全局变量,php全局变量定义

php全局变量,php全局变量定义

PHP 全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。

PHP 超级全局变量列表:

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

本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。

 

PHP $GLOBAL

$GLOBAL 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

$GLOBAL 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

以下实例介绍了如何使用超级全局变量 $GLOBAL:

<?<span>php 
</span><span>$x</span> = 75<span>; 
</span><span>$y</span> = 25<span>;
 
</span><span>function</span><span> addition() 
{ 
</span><span>$GLOBALS</span>['z'] = <span>$GLOBALS</span>['x'] + <span>$GLOBALS</span>['y'<span>]; 
}
 
addition(); 
</span><span>echo</span> <span>$z</span><span>; 
</span>?>

以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。

 

PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

以下实例中展示了如何使用$_SERVER中的元素:

<?<span>php 
</span><span>echo</span> <span>$_SERVER</span>['PHP_SELF'<span>];
</span><span>echo</span> "<br>"<span>;
</span><span>echo</span> <span>$_SERVER</span>['SERVER_NAME'<span>];
</span><span>echo</span> "<br>"<span>;
</span><span>echo</span> <span>$_SERVER</span>['HTTP_HOST'<span>];
</span><span>echo</span> "<br>"<span>;
</span><span>echo</span> <span>$_SERVER</span>['HTTP_REFERER'<span>];
</span><span>echo</span> "<br>"<span>;
</span><span>echo</span> <span>$_SERVER</span>['HTTP_USER_AGENT'<span>];
</span><span>echo</span> "<br>"<span>;
</span><span>echo</span> <span>$_SERVER</span>['SCRIPT_NAME'<span>];
</span>?>

运行

下表列出了所有 $_SERVER 变量中的重要元素:

元素/代码 描述
$_SERVER['PHP_SELF'] 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER['GATEWAY_INTERFACE'] 服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。
$_SERVER['SERVER_ADDR'] 当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.manongjc.com)
$_SERVER['SERVER_SOFTWARE'] 服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] 请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
$_SERVER['REQUEST_METHOD'] 访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。
$_SERVER['REQUEST_TIME'] 请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER['QUERY_STRING'] query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT'] 当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET'] 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST'] 当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER'] 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS'] 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR'] 浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT'] 用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@manongjc.com)
$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE'] 包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI'] URI 用来指定要访问的页面。例如 "/index.html"。

 

PHP $_REQUEST

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

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至

标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
<span><</span><span>html</span><span>></span>
<span><</span><span>body</span><span>></span>

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

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

<span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span>

 

PHP $_POST

PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至

标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
<span><</span><span>html</span><span>></span>
<span><</span><span>body</span><span>></span>

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

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

<span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span>

 

PHP $_GET

PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

$_GET 也可以收集URL中发送的数据。

假定我们有一个包含参数的超链接HTML页面:

<span><</span><span>html</span><span>></span>
<span><</span><span>body</span><span>></span>

<span><</span><span>a </span><span>href</span><span>="test_get.php?subject=PHP&web=manongjc.com"</span><span>></span>Test $GET<span></</span><span>a</span><span>></span>

<span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span>

当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。

以下实例显示了 "test_get.php" 文件的代码:

<span><</span><span>html</span><span>></span>
<span><</span><span>body</span><span>></span>

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

<span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span>

提示: 你如果想学习更多关于 $_POST 和 $_GET 的知识,请访问我们的 PHP 表单 章节。

原文地址:http://www.manongjc.com/php/php_globals.html

相关阅读:

如何将一个表单提交到多个页面

php 一个页面处理多个表单

php 表单提交GET与POST实例分享

php 实例之使用表单提交的方法来发送邮件(用户反馈)

php 获取提交表单数组实例

分享表单提交给本页的实例

php 过滤表单特殊字符实例

表单提交及php处理表单数据的实例

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
C++ 函数的局部变量和全局变量有什么区别?C++ 函数的局部变量和全局变量有什么区别?Apr 19, 2024 pm 03:42 PM

C++局部变量和全局变量的区别:可见性:局部变量仅限于定义函数,而全局变量在整个程序中可见。内存分配:局部变量在栈上分配,而全局变量在全局数据区分配。作用域:局部变量在函数内,而全局变量在整个程序中。初始化:局部变量在函数调用时初始化,而全局变量在程序启动时初始化。重新创建:局部变量在每次函数调用时重新创建,而全局变量仅在程序启动时创建。

php request什么意思php request什么意思Jul 07, 2021 pm 01:49 PM

request的中文意思为“请求”,是php中的一个全局变量,是一个包含了“$_POST”、“$_GET”和“$_COOKIE”的数组。“$_REQUEST”变量可以获取POST或GET方式提交的数据、COOKIE信息。

go语言有静态全局变量么go语言有静态全局变量么Jul 11, 2023 pm 03:37 PM

go语言没有静态全局变量,它使用了一种更为灵活的方式来处理全局变量的需求,全局变量通常是在包级别被声明,也就是在函数外部声明的变量,这些全局变量在整个包中均是可见的,可以在包中的任何函数中使用。

在JavaScript中实现全局变量的安全性在JavaScript中实现全局变量的安全性Jun 15, 2023 pm 10:33 PM

随着JavaScript的流行,越来越多的网站和应用程序都依赖于JavaScript。然而,JavaScript中全局变量的使用可能存在安全问题。在此文中,我将介绍如何在JavaScript中实现全局变量的安全性。避免使用全局变量最好的方法是避免使用全局变量。在JavaScript中,所有变量都默认为全局变量,除非它们在函数中声明。因此,应尽可能使用局部变量

Golang函数的全局变量和局部变量的数据竞争分析Golang函数的全局变量和局部变量的数据竞争分析May 21, 2023 am 08:19 AM

Golang是一种强类型编程语言,具有高效、简洁、并发等特点,因此逐渐受到了越来越多的开发者的青睐。而在Golang的开发中,函数的全局变量和局部变量往往会涉及到数据竞争的问题。本文将从实际编码的角度,对Golang函数中全局变量和局部变量的数据竞争问题进行分析。一、全局变量的数据竞争Golang全局变量在所有函数中均可以访问,因此如果不进行严谨的设计和编码

C程序中全局变量的重新声明C程序中全局变量的重新声明Sep 20, 2023 pm 10:29 PM

我们将了解在不初始化的情况下重新声明全局变量、通过初始化重新声明全局变量、重新声明全局变量并初始化两次时,C和C++的行为有何不同。另外,我们将使用局部变量重复上述组合。1.A)C程序:重新声明全局变量而不进行初始化#include<stdio.h>intvar;intvar;intmain(){&nbsp;&nbsp;printf("Var=%d",var);&nbsp;&nbsp;return0;}输出Var=0B)C++程序:

golang函数能否在goroutine中直接访问全局变量?golang函数能否在goroutine中直接访问全局变量?May 01, 2024 pm 05:51 PM

是的,Go函数在Goroutine中默认情况下可以直接访问全局变量。原因:Goroutine继承创建它的Goroutine的内存空间,包括对全局变量的访问权限。

php全局变量都有哪些php全局变量都有哪些Aug 01, 2023 pm 01:21 PM

php全局变量有:1、$_SERVER,当前脚本运行的服务器和执行环境信息的超全局变量;2、$_GET,通过GET方法传递给当前脚本的变量的关联数组;3、$_POST,通过POST方法传递给当前脚本的变量的关联数组;4、$_SESSION,存储当前会话中用户相关信息;5、$_COOKIE,通过HTTP Cookie传递给当前脚本的变量的关联数组;6、$_FILES等等。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。