2015-05-14 2 views
-1

Код PHP до сих пор.

echo $sender = isset($_GET['s']) ? $_GET['s'] : "null"; 
echo $receiver = isset($_GET['r']) ? $_GET['r'] : "null"; 
echo $timestamp = isset($_GET['t']) ? $_GET['t'] : "0"; 
echo "<br/>"; 
echo $sTotalItems = isset($_GET['si']) ? intval($_GET['si']) : 0; 
echo $rTotalItems = isset($_GET['ri']) ? intval($_GET['ri']) : 0; 
echo "<br/>"; 


for ($i = 0; $i < $sTotalItems; $i++) { 
    echo $input = isset($_GET['si'+$i]) ? urldecode($_GET['si'+$i]) : "null"; 
    if ($input == "null") 
     continue; 

    $input = explode(":", $input); 
    var_dump($input); 

} 

Что я пытаюсь сделать, это динамически захватывать переменную GET. Я отправляю несколько запросов GET, и все они содержат в основном одни и те же данные, только небольшие различия. - Мой вопрос простой. Это не работает, как будто я думаю, что это должно на уме.

$_GET['si'+$i]; 

На мой взгляд, это должно превратиться в ..

$_GET['si1']; 

Можно ли это сделать? Или мне придется выяснить другой способ сделать это? Что это делает .. это я посылаю несколько запросов .. в следующем порядке в основном ..

http://dummy.com/integrate.php?s=me&r=you&t=3425&si=1&ri=2&si0=item:1:2&ri0=item:2:1&ri1=item:3:4 

Я пытаюсь сделать это динамически возможным, чтобы отправить более чем один «пункт» в который содержит идентификатор, сообщающий системе, количество элементов для каждого отправителя и получателя. Затем цикл проходит через каждый отправитель & элементов приемников, а затем разделяет элемент на 3 значения. имя, идентификатор и сумму. Проблема, это код, вообще не захватывает элемент. Правильно ли, предположим, вы не можете использовать метод $ _GET и переменную вместе?

+2

Это, конечно, возможно. Идите и попробуйте - индекс ключа массива в '$ _GET' просто должен быть строкой, и неважно, является ли это статической строкой, переменной, вызовом функции, возвращающей строку, что угодно. –

+0

Также возможно, если вы можете изменить способ передачи строки запроса скрипта, передать переменные в виде структур массивов, с которыми легче справиться, чем такие вещи, как 'si0, si1'. Вместо этого, как 'si [0] si [1]'. http://php.net/manual/en/language.variables.external.php –

+2

Ой, подождите, теперь я вижу это. Вы используете '+' (дополнение), но вам нужно использовать '.' для конкатенации. '' si '. $ i' или '' si $ i "' –

ответ

1

Да, вы можете использовать динамические переменные вместе с $_GET, единственная проблема заключается в использовании . (период) для конкатенации не +.

1

PHP свободно напечатан, поэтому да, вы можете «добавить» число в строку, и число будет преобразовано в его строковое представление для вас. Для этого используется оператор конкатенации (.), а не оператор сложения (+). Используйте $_GET['si'.$i].

0

Другие ответы показывают, как делать то, что вы пытаетесь, однако лучше всего использовать массивы.

Использовать item[]=something&item[]=else или даже item[1]=something&item[2]=else.

Тогда вы можете получить доступ к $_GET['item'][0] или $_GET['item'][1] и т.д.

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