PHP 之超级全局变量
参考菜鸟教程,并经过自己亲手实验,记录PHP的几个超级全局变量
所谓超级全局变量 ,你可以理解为在一个脚本里面的全部代码里面都可以使用的变量。
$GLOBALS
$GLOBALS 是 php 的一个超级全局变量组,在PHP脚本中的全部作用域都可以访问
$GLOBALS 是一个包含了全部变量的全局组合数组,变量的名字就是 $GLOBAL 的键值。
你可以理解为 使用了 $GLOBALS 就可以使用这个脚本里面的任何一个任何地方的变量。
例子如下
<!doctype html>
<html>
<body>
<?php
$a = 55;
$b = 66;
function add_test()
{
$GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b'];
}
add_test();
echo $c;
?>
</body>
</html>

$_SERVER 超级全局变量
$_SERVER 是一个包含比如 头信息, 脚本路径,名称各种属性的超级全局变量,这个数组由 web 服务器创建
$_SERVER 有一些常用的键值,如下:
$_SERVER['PHP_SELF'] 表示的是当前执行执行脚本的名字, 比如说当前是 index.php , 那么这个值就是 index.php
$_SERVER['GATEWAY_INTERFACE'] 表示服务器所使用的 CGI 规范的版本
$_SERVER['SERVER_ADDR'] 当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 当前运行脚本所在的服务器的主机名
$_SERVER['SERVER_SOFTWARE'] 服务器标识字符串,在响应请求时的头信息中给出,如Apache/2.2.24
$_SERVER['SERVER_PROTOCOL'] 请示页面时通信协议的名称和版本, 如: HTTP/1.0
$_SERVER['REQUEST_METHOD'] 访问页面使用的请求方法, 例如:"GET" "HEAD", "POST" , "PUT"
$_SERVER['REQUEST_TIME'] 请求开始时的时间戳, 如 1377687499
$_SERVER['QUERY_STRING'] query string (查询字符串), 如果有的话,通过他进行页面访问
$_SERVER['HTTP_ACCEPT'] 当前请求头中 Accept 项中的内容, 如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET'] 当前请求头中 Accept-Charset 项中的内容
$_SERVER['HTTP_HOST'] 当前请求中 Host 项的内容,如果存在的话。
$_SERVER['REMOTE_ADDR'] 浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT'] 用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
例子如下:
<!doctype html>
<html>
<body>
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['GATEWAY_INTERFACE'];
echo "<br>";
echo $_SERVER['SERVER_ADDR'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['SERVER_SOFTWARE'];
echo "<br>";
echo $_SERVER['SERVER_PROTOCOL'];
echo "<br>";
echo $_SERVER['REQUEST_METHOD'];
echo "<br>";
echo $_SERVER['REQUEST_TIME'];
echo "<br>";
echo $_SERVER['REMOTE_ADDR'];
echo "<br>";
echo $_SERVER['REMOTE_HOST'];
echo "<br>";
echo $_SERVER['REMOTE_PORT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
echo "<br>";
?>
</body>
</html>
例子

$_REQUEST
$_REQUEST 是用于收集 HTML 表单提交的数据。
例子如下:
<!doctype html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?> ">
name : <input type="text" name="example">
<input type="submit">
</form>
<?php
$name = $_REQUEST['example'];
echo $name;
?>
</body>
</html>
效果:

$_POST 功能上基本和 $_REQUEST 基本一样
例子如下:
<!doctype html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
test : <input type="text" name="test1">
<input type="submit">
</form>
<?php
$test1 = $_POST['test1'];
echo $test1
?>
</body>
</html>
效果:

$_GET 的用法和上面的有类似的地方,如下:
<!doctype html>
<html>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="get">
name: <input type="text" name="fname">
age: <input type="text" name="age">
<input type="submit" value="check">
</form>
<?php
echo "name: ".$_GET['fname']."<br>";
echo "age : ".$_GET['age']."<br>";
?>
</body>
</html>
效果:

PHP 之超级全局变量的更多相关文章
- 跟着百度学PHP[6]超级全局变量
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. 参考文献:http://www.runoob.com/php/php-superglobals ...
- PHP中变量,常量,超级全局变量小结
//一般来说,变量在函数无法在函数体中无法访问,但是常量可以.//超级全局变量确实可以的,地址栏上的参数/*$GLOBALS //变量注册的信息$_GET //地址栏参数$_POST ...
- PHP 超级全局变量
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作 ...
- PHP中的超级全局变量
PHP内置了一些超级全局变量,我们可以在脚本的任何地方使用和可见,下面记录一下这些全局变量的作用: 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户 ...
- PHP超级全局变量总结
silicon1985 的 重要的PHP超级全局变量总结 PHP有9个提前定义变量数组.分别总结例如以下: 1.$_SERVER $_SERVER超级全局变量包括由webserver创建的信息.它提供 ...
- PHP利用超级全局变量$_GET来接收表单数据。
我们在linux上用 touch php_get.html php_get.php创建两个文件. php_get.html文件的代码如下: <!doctype html> <html ...
- PHP利用超级全局变量$_POST来接收表单数据。
利用$_POST超级全局变量接收表单的数据,然后利用echo输出到页面. 下面是代码: <!doctype html> <html> <head> <titl ...
- PHP超级全局变量、魔术变量和魔术函数
PHP超级全局变量(9个) $GLOBALS 储存全局作用域中的变量 $_SERVER 获取服务器相关信息 $_REQUEST 获取POST和GET请求的参数 $_POST 获取表单的POST请求参数 ...
- php之快速入门学习-12(超级全局变量)
PHP 超级全局变量 超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. PHP 超级全局变量 PHP中预定义了几个超级全局变量(superglo ...
随机推荐
- hdoj 2199 Can you solve this equation? 【二分枚举】
题意:给出一个数让你求出等于这个数的x 策略:如题. 由于整个式子是单调递增的.所以能够用二分. 要注意到精度. 代码: #include <stdio.h> #include <s ...
- 判断是否为SIM卡联系人
判断是否为SIM卡联系人 在AsyncQueryContacts类中. private List<TxrjAccount> accounts = new ArrayList<Txrj ...
- Web Service基础——基础概念
1. Web Service基本概念 Web Service(Web服务)是一种远程调用技术,他的作用就是从远程系统中获取业务数据.具体来说,Web Service可以让你的网站使用其他网站的资源,比 ...
- MySQL5.7.18基于GTID的主从复制过程实现
GTID是5.6时加入的,在5.7中被进一步完善,生产环境建议在5.7版本中使用.GTID全称为Global Transaction Identifiers,全局事务标识符.GTID的复制完全是基于事 ...
- 将form表单转化为json数据
参考地址:https://github.com/hongymagic/jQuery.serializeObject
- 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件
通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二). 前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...
- selenium2.0关于python的常用函数
转: 新建实例driver = webdriver.Chrome() 1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法: ...
- 关系数据库元数据处理类(一) 创建MSSQL元数据具体处理类
public class SqlServer : BaseMetadata { public SqlServer(string connectionString) : base(new DbUtili ...
- Linux内存初始化(四) 创建系统内存地址映射
一.前言 经过内存初始化代码分析(一)和内存初始化代码分析(二)的过渡,我们终于来到了内存初始化的核心部分:paging_init.当然本文不能全部解析完该函数(那需要的篇幅太长了),我们只关注创建系 ...
- C语言宏高级用法
1.前言 今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...