2013-04-04 149 views
1

我对变量变量有点困惑。php - 在while循环中使用变量

我喜欢做的是打印的VAR1 $,$ VAR2值和$ VAR3:

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

$i = 1; 

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

我知道是$ var $我。是不正确的,但我认为它显示了我想实现的; 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循环中重新创建的,而不是使用实际值。不知道这是否正确,但我唯一能想到的是。

+0

应该是什么样的期望输出? – 2013-04-04 04:05:10

+0

你可以试试'$($ var。$ i)'。 – anroesti 2013-04-04 04:07:32

+0

我运行上面的代码,输出是'abc' – 2013-04-04 04:07:33

回答

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