$GLOBALS 里是不是包含了  $_GET 的值?比如 $_GET['t'] 是不是 和 $GLOBALS['t'] 一样?
课时我这么写:<?phpif(isset($GLOBALS['t']))
  echo $GLOBALS['t'];exit($_GET['t']);?>当打开 test.php?t=fuck  的时候,只 fuck 一下, 没有第二个 fuck ?囧 。。 到底应该怎么理解?

解决方案 »

  1.   

    $GLOBALS 里是不是包含了 $_GET 的值? 不包含比如 $_GET['t'] 是不是 和 $GLOBALS['t'] 一样? 不一样
      

  2.   

    你的fuck是 $_GET['t'] 的值。
    要令全部变量生效。需设置php.ini中 register_globals = On 才行。
    参见:http://php.net/manual/zh/reserved.variables.globals.php
      

  3.   

    本帖最后由 xuzuning 于 2012-06-07 16:01:30 编辑
      

  4.   

    $GLOBALS是定义全局变量$_GET是拿到使用get方式提交表单的值
      

  5.   

    为什么 $GLOBALS 里不包含 $_GET 的值?
      

  6.   

    $GLOBALS 存放的是程序定义的全局变量
    $_GET 存放的是通过 url 传入的变量如果 $GLOBALS 里包含 $_GET 的值,就表示用传入的值替代程序定义的值
    由此可能引发一些不是期望的操作
      

  7.   

    $_GET['a'] === $GLOBALS['_GET']['a']
      

  8.   

    我是忘记了这个,以前好像记得书上看过,但是我在 开发中发现 DEDE 的程序里也有这种用法,但死活找不出这个值是哪里赋值的,比如:if(isset($GLOBALS['PageNo'])) $this->PageNo = $GLOBALS['PageNo'];这里的 $GLOBALS['PageNo']  我一开始以为就是 $_GET['PageNo'],可是每次 exit($GLOBALS['PageNo']) 都显示一片空白,我大脑也随之一片茫然和空白了....
      

  9.   

    $GLOBALS['PageNo'] 这个值是在哪里赋予的? 还是每次 传递 $_GET['PageNo'] 这个参数的时候被赋值的?
      

  10.   

    那你在用$GLOBALS 之前不能打印一下吗?? 你就看看他到底是个啥玩意,你不就会用了吗.
    Array ( 
        [GLOBALS] => Array *RECURSION* 
        [_POST] => Array ( ) 
        [_GET] => Array ( ) 
        [_COOKIE] => Array ( ) 
        [_FILES] => Array ( ) 
        [_SERVER] => Array()

    LZ 看出来了没?$GLOBALS  一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
      

  11.   

    $GLOBALS  返回系统已定义的超全局数组变量,便于在程序外部访问$_GET  $_POST本身就是超全局数组。自然在$GLOBALS中存在_get=>array()这个元素。所以利用$GLOBALS可以取出超全局变量的值。<?phpif(isset($GLOBALS['t']))  这里在$GLOBALS[]数组中根本就没有t这元素,所以后面的就根本无法执行  echo $GLOBALS['t'];exit($_GET['t']);  这里会显示出通过url传递进来的T的值fuck。自然在点击时就输出了fuck。?>如果这样设计
    <a href=test.php?t='fuck'>123</a>
    <?phpif(isset($GET['t']))
       $GLOBALS['t']='fuck2';echo  '$GLOBALS['.'t'.']='.$GLOBALS['t'];exit($_GET['t']);
    ?>输出 123 
    点击后输出 123   $GLOBALS[t]=fuck2  fuck
     
      

  12.   


    打印过了,没输出,我一开始以为 $GLOBALS['TotalResult'] 和 $_GET['TotalResult'] 是同一个概念,看来我理解错了