预定义数组:
自动全局变量--超全局数组
1.包含了来自Web服务器,客户端,运行环境和用户输入的数据.
2.这些数组比较特别,全局范围内自动生效,都可以直接使用这些数组
3.用户不能自定义这些数组.但这些数组的操作方式又和我们自己定义数组操作方式一样
4.在函数中直接可以使用这些数组.
$_GET//经由URL请求提交至脚本的变量
例:
<?php echo $_GET["username"]; echo $_GET["age"]; echo $_GET["sex"]; ?>
<a href="demo.php?username=zhangsan&age=19&sex=nan">Test</a>
//当点击Test链接时,会获取URL中的变量信息
//输出结果: zhangsan 19 nan
//缺点:有密码等安全信息(如表单)不能使用GET请求,有大数据不能使用GET(地址栏
容纳的数据有限,最多8092字节)
---------------------------------------
$_POST//经由HTTP POST方法提交至脚本的变量
//添加文章,上传文件,安全性必须使用POST
---------------------------------------
$_REQUEST
//经由GET,POST,COOKIE机制提交至脚本的变量,因此不值得信任,尽量不使用
//GET POST COOKIE提交的数据$_REQUEST都可以接受到
//在不确定使用的那种提交方式,可以用这个数组
----------------------------------------
$_FILES//经由HTTP POST文件上传而提交至脚本的变量
$_COOKIE//控制会话控制
$_SESSION//控制会话控制
$_ENV//执行环境提交至脚本的变量(和服务器操作系统有关的信息)
$_SERVER//变量由Web服务器设定的或直接和当前脚本的执行环境相关
$GLOBALS//只要是当前脚本有效的变量都在这里,数组键名为全局变量的名称
//这里有上面所有全局变量及自定义全局变量的信息
例: $a=100;
function demo(){
$GLOBALS["a"]; //这样可以直接取到值,不需要再使用 global a;声明
}
4.可以直接往全局数组里面写数组里面写数据
例: $_ENV["hello"]="##########" //向$_ENV数组后面插入#号
5.全局数组和超全局数组的区别
例: $arr=array(10,20);
function demo(){
global $arr; //这里必须在全局变量$arr加上global关键字,下面的输出语句才
能起作用,而超全局变量不需要
print_r($arr);
}