0

我正在使用以下代码从$_REQUESTphp 中获取数据:

for($i=0;$i<intval($q);$i++)
    {
       $construct="'".$i."'";
       echo $construct;
       $p=$_REQUEST[$construct];
       echo $p;

    }

其中 '0','1',... 等等都有值。但由于某种原因,它不起作用。但是,如果我用 $_REQUEST['0'] 替换它,它似乎可以很好地打印该值。任何想法我做错了什么?

4

2 回答 2

1

删除周围的引号$i

for($i=0;$i<intval($q);$i++)
{
   $construct=$i;
   echo $construct;
   $p=$_REQUEST[$construct];
   echo $p;

}

这是因为引号不是数组索引的一部分。

此外,如果要调试,可以$_REQUEST像这样写出 -variable 的全部内容:

print "<pre>";
print_r($_REQUEST);
print "</pre>";

编辑:

$a[$b]$b=0$b='0'或都相同$b="0",但何时 不同$b="'0'"

于 2012-10-02T04:16:39.750 回答
1

您的$construct变量值包含单引号,这不是必需的。当您将其写出时,'0'表示实际值为0,而"'0'"表示值为'0'。您的代码应为:

for($i=0;$i<intval($q);$i++)
{
   $construct= strval($i);
   echo $construct;
   $p=$_REQUEST[$construct];
   echo $p;
}

或更简单地说:

for ($i=0; $i<intval($q); $i++) {
   echo $_REQUEST[strval($i)];
}
于 2012-10-02T04:18:34.087 回答