2016-01-03 2 views
-1

Уверен, что это было задано 100 раз, но не может найти форму слов, чтобы получить ответ либо здесь, либо в Google.Тестирование, если существует объединенное имя переменной

У меня есть переменное количество сообщений. Они прибывают в

$_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, поэтому ее нельзя использовать в качестве теста), но не может решить решение для прохождения через переменные.

ответ

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 ... yep 100% работает. Это еще один час моей жизни, полностью потерянный. Это было так так очевидно. Спасибо миллион. – BeNice

Смежные вопросы