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()也不会影响。

 

posted @ 2016-01-10 15:31  holy_night  阅读(155)  评论(0编辑  收藏  举报