discuz代码foreach(array('_COOKIE', '_POST', '_GET') as $_request) {1
foreach($$_request as $_key => $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value);
}
}
foreach($$_request as $_key => $_value)
$$_request这个可变变量有啥用呢。$_request不也是一样嘛?????不解中

解决方案 »

  1.   

    变量的变量咯。
    $a = '_POST';
    $$a就是$_POST了
      

  2.   

    这个可变变量我理解
    $$_request这个可变变量有啥用呢。$_request不也是一样嘛?????不解中
      

  3.   

    foreach没搞明白?
    =============
    foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
    //遍历数组,把数组每一项值赋给$_request,假设当前遍历到了_COOKIE,即$_request === '_COOKIE'
       foreach($$_request as $_key => $_value) {
       //接以上的注释,因为_COOKIE赋给了$_request,所以,$$_request就变成了$_COOKIE,开始遍历$_COOKIE..
       $_key{0} != '_' && $$_key = daddslashes($_value);
       }
      

  4.   

    因为_COOKIE赋给了$_request,哪直接就foreach($_request as $_key => $_value)不一样嘛?????????????为什么还要经过这么一个步聚呢??$$_request就变成了$_COOKIE,开始遍历$_COOKIE.
      

  5.   

    foreach(array(array('a', 'b', 'c'),array('d', 'e', 'f')) as $_request) {
       foreach($_request as $_value) {
           echo $_value."</br>";
       }
    }这不是一样嘛,,非得$$一下是为什么呢,,初学php,请达人帮助理解
      

  6.   

    因为_COOKIE赋给了$_request,哪直接就foreach($_request as $_key => $_value)不一样嘛????????????? 
    ===================================================================================
    $_request = '_COOKIE',此时$_request是字符串'_COOKIE',你foreach个字符串干什么呢?而$$_request才是$_COOKIE!!!
      

  7.   

    用时间换空间,这有什么不懂的呢foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
      foreach($$_request as $_key => $_value) { 
        $_key{0} != '_' && $$_key = daddslashes($_value); 
      } 
    } 与foreach(array($_COOKIE, $_POST, $_GET) as $_request) {
      foreach($$_request as $_key => $_value) { 
        $_key{0} != '_' && $$_key = daddslashes($_value); 
      } 
    } 是等价的显然前者使用的内存数量要小于后者