如何在循环中更改php变量名?

如何在循环中更改php变量名?,php,variables,loops,for-loop,Php,Variables,Loops,For Loop,假设我有一个名为$file的变量和for循环:for($I=1;$IUse: 有关($i=1;$i的信息,请参阅PHP的手册 $var_name=''; 对于($i=0;$i$val\n”; } 为什么要这样做?使用(关联)数组作为可移植名称空间几乎总是一个更好的解决方案。@Yuri非常感谢!即使在2014年,你的答案也是在帮助人们!数组对我所做的没有帮助,我正在逐行制作一个文件,所以我有$line01=“foo”…$line55=“bar”因此,除非有更好的方法逐行创建变量,否则执行此变量方法

假设我有一个名为$file的变量和for循环:
for($I=1;$IUse:

有关($i=1;$i的信息,请参阅PHP的手册

$var_name='';
对于($i=0;$i<5;$i++)
{
$var_name='file'.$i;
//立即引用$$var\u名称。
$$var_name='foo';
}
var_dump($file1);
var_dump($file2);
var_dump($file3);
var_dump($file4);
var_dump($file5);

有一种方法可以做到这一点:

for($i = 1; $i <= 5; $i++) {
    ${'file'.$i} = ...;
}

对于($i=1;$i您也可以使用数组。它没有相同的确切效果,但通常我看到在这些情况下使用它

for($i=1; $i <= 5; $i++) {
    $file[$i] = $i;
}

for($i=1;$i您可以随心所欲,但动态创建变量似乎是解决此类问题的一种不同寻常的方式(我可能错了)

我建议将文件名存储在一个数组中,这样以后就可以轻松地迭代文件,或者添加一个额外的文件,而不必更改任何硬编码的变量名

    $myfiles = array();

    for ($i=1; $i<=5; $i++) {
       $myfiles["file$i"] = "value set in loop";
    }

    //if you want to use the values later
    $file5_value = $myfiles["file5"];

    //if you want to loop through them all
    foreach ($myfiles as $key => $val) {
      echo "$key -> $val\n";
    }
$myfiles=array();
对于($i=1;$i$val){
回显“$key->$val\n”;
}

为什么要这样做?使用(关联)数组作为可移植名称空间几乎总是一个更好的解决方案。@Yuri非常感谢!即使在2014年,你的答案也是在帮助人们!数组对我所做的没有帮助,我正在逐行制作一个文件,所以我有
$line01=“foo”
$line55=“bar”
因此,除非有更好的方法逐行创建变量,否则执行此变量方法对我来说似乎最有意义。那么,我如何在01-09上也使用0填充呢?我想在for循环中使用if语句,但有更好的方法吗?
for($i = 1; $i <= 5; $i++) {
    $file[$i] = ...;
}
for($i=1; $i <= 5; $i++) {
    $file[$i] = $i;
}
    $myfiles = array();

    for ($i=1; $i<=5; $i++) {
       $myfiles["file$i"] = "value set in loop";
    }

    //if you want to use the values later
    $file5_value = $myfiles["file5"];

    //if you want to loop through them all
    foreach ($myfiles as $key => $val) {
      echo "$key -> $val\n";
    }