PHP 超全部变量
PHP 超全部变量如下:
$GLOBALS,$_SERVER,$_REQUEST,$_POST,$_GET,$_FILES,$_ENV,$_COOKIE,$_SESSION
1.$GLOBALS
主要在局部作用域中引用全部作用域变量,PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。如下代码
<?php $g1 ='1'; function A(){ echo $GLOBALS["g1"]; $GLOBALS["m"] = $GLOBALS["g1"] + "2"; } A(); echo "<br/>",$m; ?>
输入结果为
1
3.
2.$_SERVER
保存关于报头、路径和脚本位置的信息
通过以下代码输入查看更清晰而使用var_dump($_SERVER );
<?php echo "<table border='1'>"; foreach($_SERVER as $key=>$value){ echo "<tr><td>$key</td><td>$value</td></tr>"; } echo "</table>"; ?>
3.$_REQUEST,$_POST, $_GET
都是用于收集用户提交的表单信息
$_GET 用于获取提交方式为get 提交的表单 一般有两种
1. http://www.abc.com?d=1&v=e;
2.<form method='GET' action=''></form>
$_POST 用于获取提交方式为POST 提交的表单
<form method='POST' action=''></form>
$_REQUEST 不管是GET或POST提交都全部接受数据,以下代码可以同时进行GET和POST一并提交
1 <form action="form.php?get1=get1&get2=get2" method="POST"> 2 <input type="text" name="txtName"/> 3 <input type="password" name="txtPwd"/> 4 <input type="submit" value="submit"/> 5 </form>
输出结果如下:
GET array(2) { ["get1"]=> string(4) "get1" ["get2"]=> string(4) "get2" } POST array(2) { ["txtName"]=> string(10) "zhanghsan " ["txtPwd"]=> string(3) "123" } REQUEST array(4) { ["get1"]=> string(4) "get1" ["get2"]=> string(4) "get2" ["txtName"]=> string(10) "zhanghsan " ["txtPwd"]=> string(3) "123" }
而如果GET 和POST 出现重复的情况下则按照php.ini中的 request_order = "GP" 决定。 G-GET,P-POST 。"GP"表示先获取GET再获取POST,所以后者会覆盖前者的值。
$_GET,$_POST,$_REQUEST 相互独立互不影响,对其中一个使用unset()也不会影响。