前言
上一节我们介绍过相关的预定义数组和说明对应的作用,通过上一篇文章我们了解到预定义的数组的强大,那本文接着,逐一详细介绍每个预定义数组的详细用法。毕竟再强大的东西没有学会使用,不经过实践都是空中楼阁,废话不多说,下面通过实例来体验下。
服务器变量:$_SERVER
$_SERVER是一个包含诸如头信息、路径和脚本的数组。数组的实体有web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,或者产生一些其他新的信息。和其他的超全局数组一样,这是一个自动的全局变量,在所有的脚本中都有效,在函数或对象的方法中不需要使用global关键字访问它。在下面的实例中使用foreach语句,将当前web服务器创建的超全局数组$_SERVER中的信息全部遍历出来,供用户查看。下面我们通过代码感受一下:
<?php
foreach($_SERVER as $s){
echo $s.'<br/>';
}
?>
执行结果如下:
$_SERVER数组中的数据可以根据自己声明的脚本情况选择使用.在上面的代码中,使用foreach语句遍历出由web服务器创建的所有全局变量,当然也可以使用print_r()函数直接输出数组中的全部内容.但在程序中只需要使用$_SERVER数组中的个别数据,通过下标单独访问即可
环境变量:$_ENV
$_ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境转变为PHP全局变量.它们中的许多都是由PHP运行的系统决定的,完整的列表是不可能的,需要查看PHP所在服务器的系统文档以确定其特定的环境变量.和$_SERVER一样,$_ENV也是一个自动全局变量,在所有的脚本中都有效,在函数或对象的方法中不需要使用global关键字访问它.在下面的实例中也使用foreach语句,将PHP中能使用的PHP所在服务器的环境相关信息全部输出,以供用户查看.代码如下:
$_ENV超级全局变量提供PHP解析所在服务器环境的有关信息。比如此数组中的变量包括:
$_ENV[ 'HOSTNAME' ]
<?php
foreach($_ENV as $e){
echo $e . '<br/>';
}
?>
全局变量:$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量,该数组的键名为全局变量的名称
$GLOBALS 超级全局变量数组可以认为是超级全局变量的超集,包含全局作用域内的所有变量。执行下面的代码可以查看$GLOBALS 中所有的变量。实践出真知,我们同样通过代码的输出来看看$GLOBALS到底包含了那些数据:
<?php
print_r($GLOBALS);
?>
在上面的代码中我们使用的访问链接是:http://127.0.0.1:81/demo1/(我的代码放在demo1文件夹下的index.php),所以我们看不到有任何数据,如果把链接修改成带参数的会有什么变化呢,我们接着来看看下面的访问结果
访问链接:http://127.0.0.1:81/demo1/?a=123123&b=456
从执行结果可以看出,通过带参数的链接访问就能通$GLOBALS获取到相关的参数,比如在实际开发中我们需要知道链接中带有哪些参数,或者在程序中我需要使用到相关的参数,这时候我们就可以使用$GLOBALS['GET']来获取参数实际的值,当然我们平时的实际开发中很少使用这个方式去获取链接中的参数,我们会使用更简单的访问方式$_GET来访问链接中的相关参数。如果是post请求我们会使用$_POST来获取对应的post请求提交的参数,具体的用法我们下篇文章详细介绍,欲知后事如何请听下回分解。