PHP超级全局变量的定义及详细的应用是怎样的
Admin 2022-08-29 群英技术资讯 726 次浏览
这篇文章主要讲解了“PHP超级全局变量的定义及详细的应用是怎样的”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
在函数外部定义的全局变量是不能在函数内部引用的,但是有些时候却需要在函数内使用这些全局变量,这时候就要用到超级全局变量,超级全局变量是可以再函数内部引用的。
PHP中预定义了几个超级全局变量 ,这也就是说它们在一个脚本的全部的作用域中都可以被引用。 不需要特别说明,超级全局变量就可以在函数及类中使用。
PHP超级全局变量:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
今天我们先来看一下几个在日常使用中常用到的超级全局变量,接下来我们通过一些实例来看一下,这些超级全局变量的一些用法和特点。
首先,我们先来看:
PHP $GLOBALS
$GLOBALS 是一个预定义的超全局数组,其中包含了全局作用域中的所有可用变量,变量的名字就是数组的键。$GLOBALS在一个PHP脚本的全部作用域中都可以访问。
示例如下:
<?php
//定义两个全局变量,函数内部不可以访问
$a = 75;
$b = 25;
//定义函数
function addition()
{
//将全局变量变为超级全局变量,这样在函数内部就可以正常访问了
$GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b'];
}
//调用函数
addition();
//输出函数内部定义的全局变量
echo $c;
?>输出结果:

$GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。由上述示例看得出,全局变量变为超级全局变量,这样在函数内部就可以正常访问了。
global
还有一个与$GLOBALS 很类似的叫 global 关键字,它也可以让我们在函数内部使用在函数外部定义的全局变量。
语法格式如下:
global 变量1, 变量2, ...
global 关键字后面可以和多个变量作为参数,多个变量之间以“,”(逗号)分隔。同时,使用global要注意一些关键点:
global 关键字,不能在函数外部使用,只能在函数内部使用;
global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
示例如下:
<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
global $a, $b;
echo "变量 a:".$a;
echo "<br>变量 b:".$b;
echo "<br>变量 c:".$c;
}
demo();
?>在上述例子中,定义了三个变量,但是在函数内global关键字只修饰了两个变量,那输出结果会有什么影响呢?
输出结果:

可以看出,结果只输出了变量a和b的,因为global关键字只在函数内修饰了两个,所以变量c没有使用成功。
通过两个例子我们能够看出与 global 相比,$GLOBALS 有一下几点不同:
global $ 指的是对函数外部同名变量的引用,是两个互不影响的变量,而 $GLOBALS[] 指的是函数外部变量本身,是一个变量。
$GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。
PHP $_SERVER
PHP $_SERVER准确来说是一个数组,$_SERVER 包含了头信息、路径、以及脚本位置等等信息。这个数组中的项目由 Web 服务器创建。服务器可能会忽略一些,不一定每个服务器都提供全部项目。
接下来给大家举个例子如何使用PHP $_SERVER:
<?php //输出当前脚步的文件名 echo "<h3>输出当前脚步的文件名</h3>"; echo $_SERVER['PHP_SELF']; echo "<hr/>"; //当前脚步所在服务器的主机名 echo "<h3>当前脚步所在服务器的主机名</h3>"; echo $_SERVER['SERVER_NAME']; echo "<hr/>"; //当前请求头中 Host echo "<h3>当前请求头中 Host</h3>"; echo $_SERVER['HTTP_HOST']; echo "<hr/>"; //引导用户代理到当前页的前一页的地址(如果存在) echo "<h3>引导用户代理到当前页的前一页的地址(如果存在)</h3>"; echo $_SERVER['HTTP_REFERER']; echo "<hr/>"; //用来检查浏览页面的访问者在用什么操作系统 echo "<h3>用来检查浏览页面的访问者在用什么操作系统</h3>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<hr/>"; //包含当前脚本的路径 echo "<h3>包含当前脚本的路径</h3>"; echo $_SERVER['SCRIPT_NAME']; ?>
输出结果

给大家分享一下, 更多$_SERVER 变量中的重要元素:
$_SERVER['PHP_SELF']---当前执行脚本的文件名,与 document root 有关。
$_SERVER['GATEWAY_INTERFACE']---服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR']---当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']---当前运行脚本所在的服务器的主机名。
$_SERVER['SERVER_SOFTWARE']---服务器标识字符串,在响应请求时的头信息中给出。
$_SERVER['SERVER_PROTOCOL']---请求页面时通信协议的名称和版本。
$_SERVER['REQUEST_METHOD']---访问页面使用的请求方法。
$_SERVER['REQUEST_TIME']---请求开始时的时间戳。从 PHP 5.1.0 起可用。
$_SERVER['QUERY_STRING']---query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']---当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET']---当前请求头中 Accept-Charset: 项的内容,如果存在的话。
$_SERVER['HTTP_HOST']---当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['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 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
$_SERVER['SERVER_PORT']---Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE']---包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']---当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME']---包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI']---URI 用来指定要访问的页面。例如 "/index.html"。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php设计模式下拥有各种各样的模式,下文中小编将为大家列举出能够提供一个访问它的全局访问点Singleton(单例模式)的代码详解,有需要的程序员可以直接在下文中拷贝使用。
如何用PHP实现抽奖功能?一般商家在搞活动时,我们总能看到各种抽奖,这些抽奖功能是怎样做的呢?下面就分享一个使用PHP写的抽奖功能实例,感兴趣的朋友就继续往下看吧。
这篇文章主要介绍了php项目接入xxl-job调度系统的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在上一篇文章中我们介绍了统计字符串中字符出现次数的方法,。既然介绍了字符的次数的统计方法,我们也来看看数组,这次带大家了解一下统计数组元素出现次数的方法,有需要的可以参考参考
在本篇文章里小编给大家整理的是一篇关于php如何处理setcookie失效的问题,有兴趣的朋友们可以跟着学习下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008