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 ...
随机推荐
- PAT 1085 Perfect Sequence
PAT 1085 Perfect Sequence 题目: Given a sequence of positive integers and another positive integer p. ...
- 教程 | 一文入门Python数据分析库Pandas
首先要给那些不熟悉 Pandas 的人简单介绍一下,Pandas 是 Python 生态系统中最流行的数据分析库.它能够完成许多任务,包括: 读/写不同格式的数据 选择数据的子集 跨行/列计算 寻找并 ...
- [转]Vue生态系统中的库
Vue UI组件库 Vuex vux github ui demo:https://github.com/airyland/vux Mint UI 项目主页:http://mint-ui.github ...
- Hibernate 、 Axis2发布
1. you just compile your web-service into aar file (not include bean files), copy the aar into axis2 ...
- Android HTTP通讯
这里有一个非常棒的http通讯的总结,我看了以后茅塞顿开. 先贴代码: 01 public class Activity1 extends Activity { 02 03 private ...
- ngx_lua学习笔记 -- capture + proxy 实现httpclient
题注 最近我在学习nginx的lua插件,发现结合nginx的异步io和lua的流程控制能力,还是有很丰富的想象空间的:几乎所有常见的http请求的处理逻辑都能搞定,诸如查查数据库,访问一下memca ...
- iOS - BSDSocket 的使用
1.BSDSocket 一套 unix 系统下的 socket API(纯 C). iOS 系统基于 unix,所以支持底层的 BSD Socket,在 Xcode 中可以直接使用. 2.基本使用 2 ...
- python练习笔记——用列表推导式生成二维列表
用列表推导式如何生成如下列表:[[1, 2, 3], [4, 5, 6], [7, 8, 9]] inner_list = [] outer_list = [] for i in range(1,10 ...
- linux文件系统管理的工作原理
一.系统在初始化时如何识别硬盘 1.系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的boot loader 程式,而后面的16 ...
- mac下设置redis开机启动方法
Mac OS 的开机启动方式 launchd 是 Mac OS 下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程.其实它的作用就是我们平时说的守护进程,简单来说,用户守 ...