有谁知道为什么这段简单的代码不起作用?第二个循环似乎没有发生。
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;
}
答案 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(){}
语法,它始终从数组中的第一个元素开始。