zoukankan      html  css  js  c++  java
  • PHP中全局变量$_REQUEST、 $_GET、 $_POST、 $_COOKIE 的关系和区别 (转载)

    原文地址找不到了 sorry快哭了

    $_REQUEST、 $_GET、 $_POST、 $_COOKIE  的关系和区别:
    1.关系:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容,是它们的集合体。(测试1)


    2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一个副本。改变$_REQUEST的值不影响$_GET等,反之亦然。(测试2)

    3.GET和POST同名的情况下,$_REQUEST取的是POST的值。(测试3)


    4.COOKIE与GET或POST重名的情况下,$_REQUEST取的是COOKIE的值。COOKIE的优先级最高。(测试4)

    测试开始。

    测试1:
    echo '<pre>';//源格式打印
    //URL加上m=xxoo来测试$_GET
        print_r($_REQUEST);//首先打印内容
        print_r($_GET);

        $_REQUEST = array();//清空$_REQUEST
        echo $_GET['m'];
    echo '</pre>'; 

    测试结果:$_GET['m']的值是xxoo。

    测试2:
    echo '<pre>';//源格式打印
    //URL加上m=xxoo来测试$_GET
        print_r($_REQUEST);
        print_r($_GET);

        $_GET = array();//清空
        print_r($_REQUEST);
    echo '</pre>'; 

    测试结果:$_REQUEST['m']的值是xxoo。

    结论:对$_REQUEST的操作没有影响到$_GET,反之亦然。$_REQUEST只是包含了一个$_GET的副本(the same as $_POST 哈哈)。

    测试3
    //POST-GET重名测试
    //从其他页面POST传送一个m的值为post,action地址加上m=get
        print_r($_REQUEST);
        print_r($_GET);
        print_r($_POST);
     

    结果:$_REQUEST['m'] == 'post'。
    结论:同时提交GET和POST且同名,$_REQUEST取的是POST的值。(可能是POST优先级更高。)

    测试4
    //cookie与post\get 重名测试
    setcookie('m', 'cookie', time()+3600);//先把COOKIE种上,名字为m,值为cookie。然后刷新。(COOKIE要刷新才生效)

    //从其他页面POST传送一个m的值为post,action地址加上m=get
    print_r($_REQUEST); 

    结果:$_REQUEST['m'] == 'cookie'。结论:COOKIE的优先级最高。



  • 相关阅读:
    ASP.NET MVC3 的一个OutputCache问题
    好用的服务器软件安装工具
    IO(五)----打印流
    HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)
    HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)
    HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)
    makefile编写_简单
    3.6.3 不可变字符串
    使用VisualStudio进行脚本|样式文件压缩
    Java笔记--网络编程
  • 原文地址:https://www.cnblogs.com/y0umer/p/3838880.html
Copyright © 2011-2022 走看看