2016-01-03 18 views
-1

我相信這已經被問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()。我認爲我理解了它,並且我明白了這個問題(這是一個無效函數,因此不能用作測試),但是無法找出通過變量的解決方案。

回答

1

parse_str解析字符串。你期望什麼字符串"message$i"

如果你確保所有消息都來自$_GET,使用$_GET

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

但很明顯,用於存儲這些數據,陣列移動方便。

+0

OMG謝謝你,看起來很明顯。 ''parse_str'確實可以讓你形成一個變量名我認爲(很確定我設法創建了$ test $ i(例如$ test7 =「Hello」,它工作但不記得我是如何做到的)。這是100%的罰款,是的,它應該是一個陣列,但... BRB ...是100%的作品,這是我生命中的另一個小時完全浪費,這是如此明顯,感謝一百萬。 – BeNice