测试是否存在组合变量名


Testing if a combined variable name exists

我确信这个问题已经被问了100次,但在这里或谷歌上都找不到答案的单词形式。

我有可变数量的信息。它们以的形式到达

$_GET['message1']; $_GET['message2']; $_GET['messageX']; etc

其中X可以是1至100。

我需要测试它们是否存在,然后将它们推送到数据库中。我试过

$i=1;
while (isset(parse_str("message$i"))) 
{
    echo parse_str("output=message$i");
    echo "<h1>This is test $output </h1>";
$i++;
}

这不起作用。我以为中间部分有效,但只是重新测试了一下,这也是错误的。

我是parse_str()的新手。我想我理解了它,也理解了这个问题(它是一个void函数,所以不能用作测试),但无法找到通过变量的解决方案。

parse_str解析字符串。您希望字符串"message$i"中包含什么?

如果您确定所有消息都来自$_GET,请使用$_GET:

$i = 1;
while (isset($_GET['message' . $i])) {
    echo $_GET['message' . $i];
    $i++;
}

但显然,对于存储此类数据,数组的移动非常方便。