在for循环中从$ _POST获取数据

ing*_*.am 3 html css php post http-post

如果我的表单中有一些隐藏的输入:

<input type="hidden" name="test" value="somedata">
<input type="hidden" name="entry0" value="moredata">
<input type="hidden" name="entry1" value="moredata">
<input type="hidden" name="entry2" value="moredata">
<input type="hidden" name="entry3" value="moredata">
<input type="hidden" name="entry4" value="moredata">
Run Code Online (Sandbox Code Playgroud)

现在,一旦提交表单并且我从帖子中获取数据,如果我尝试调用,$_POST['test']那么我将获得"somedata"值.但如果我这样做:

for($i = 0; $i < 5; $i++)
{
  $x = 'entry{$i}';
  echo $_POST[$x]; // This does not work.
}
Run Code Online (Sandbox Code Playgroud)

然后,我没有为每个"条目"输入返回"更多数据"值.如果我打印出定义为的字符串$x,那么我会得到我之后的字符串,但它似乎不想像这样工作$_POST.任何人有任何想法我怎么能解决这个问题?

谢谢

Bla*_*iev 7

在字符串文字内部,只有在字符串文字用双引号括起来时才会插入变量:

for ($i = 0; $i < 5; $i++) {
  $x = "entry{$i}";
  echo $_POST[$x];
}
Run Code Online (Sandbox Code Playgroud)

为了更加安全,您可能需要检查是否array_key_exists($x, $_POST)在下标之前$_POST,否则E_NOTICE如果传递的字段不对应,则会出现级别错误.