2013-04-04 162 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