2013-04-04 4 views
1

Я немного смущен переменными переменными.php - использовать переменную переменную во время цикла

То, что я хотел бы сделать, это распечатать значение $ var1, $ var2 и $ var3:

$var1 = 'a'; 
$var2 = 'b'; 
$var3 = 'c'; 

$i = 1; 

while ($i <=3) { 
    echo $var.$i; 
    $i++; 
} 

Я знаю $ вар $ я;. неверен, но я думаю, что это показывает, чего я хотел бы достичь; цикл while должен изменить его на $ var1, $ var2 и $ var3;

Я попытался следующие:

$var1 = 'a'; 
$var2 = 'b'; 
$var3 = 'c'; 

$i = 1; 

while ($i <=3) { 

    $current_var = 'var'.$i; 
    $current_var = $$current_var; 

    echo $current_var; 

    $i++; 
} 

Но это не работает. Я думаю, потому что $ var1, $ var2 и $ var3 воссоздаются в while-loop вместо использования фактического значения. Не уверен, что это правильно, но это единственное, о чем я могу думать.

+0

, каким должен быть желаемый результат ?? –

+0

Вы можете попробовать '$ ($ var. $ I)'. – anroesti

+0

Я запустил вышеуказанный код, и вывод был 'abc' –

ответ

4

Попробуйте вместо этого:

echo ${"var".$i}; 

Фигурные скобки могут решить, чтобы имена переменных без необходимости использовать доллар-доллар подход.

См: Variable Variables in PHP

1

Попробуйте это.

<?php 
$var1 = 'a'; 
$var2 = 'b'; 
$var3 = 'c'; 

$i = 1; 
while ($i <=3) { 

    echo ${'var'.$i}; 

    $i++; 
} 
?> 
0

Вы пытаетесь сделать что-то подобное. Затем используйте array

$my_data = array(); 
$my_data[1] = 'a'; 
$my_data[2] = 'b'; 
$my_data[3] = 'c'; 

// Method 1 
$i = 1; 
while ($i <= 3) { 
    echo $my_data[$i]; 
    $i++; 
} 

// Method 2 
foreach ($my_data as $data) { 
    echo $data; 
} 

// Выходные данные

abc 

abc 

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

  • Нет связанных вопросов^_^