php - 在while循环中使用变量变量

时间:2013-04-04 04:03:01

标签: php while-loop variable-variables

我对变量变量感到有点困惑。

我喜欢打印$ var1,$ var2和$ var3:

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

$i = 1;

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

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

3 个答案:

答案 0 :(得分:4)

请改为尝试:

echo ${"var".$i};

大括号可以解析为变量名,而无需使用美元 - 美元方法。

请参阅:Variable Variables in PHP

答案 1 :(得分:2)

试试这个。

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

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

    echo ${'var'.$i};

    $i++;
}
?>

答案 2 :(得分: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