任何想法为什么这个简单的代码不起作用?

时间:2015-04-02 15:24:58

标签: php

有谁知道为什么这段简单的代码不起作用?第二个循环似乎没有发生。

while(list($get_key, $get_value) = each($HTTP_GET_VARS)) {
    if (!${$get_key}) {
         ${$get_key}=$get_value; 
    }
}

while(list($keyone, $valueone) = each($HTTP_GET_VARS))    
{
    echo $keyone;
}

1 个答案:

答案 0 :(得分:0)

这里的问题是使用each()。它会记住它在数组中已达到的索引,因此在第二个循环中没有任何东西可以循环,所以它的计算结果为false。如果您使用reset(),则应解决此问题。

while(list($get_key, $get_value) = each($HTTP_GET_VARS)) {
  if (!${$get_key}) {
     ${$get_key}=$get_value; 
  }
}

reset($HTTP_GET_VARS);//will put the pointer back to the first element

while(list($keyone, $valueone) = each($HTTP_GET_VARS))    
{
  echo $keyone;
}

或者你可以使用foreach(){}语法,它始终从数组中的第一个元素开始。