23

我有一个 PHP for 循环:

for ($counter=0,$counter<=67,$counter++){

echo $counter;
$check="some value";

}

我想要实现的是使用 for 循环变量并将其附加到另一个变量的名称。

基本上,我希望每行的 PHP 输出如下

1
$check1="some value"

2
$check2="some value"

3
$check3="some value"

4
$check4="some value"

etc etc 

我试过$check.$counter="some value"了,但这失败了。

我怎样才能做到这一点?我错过了一些明显的东西吗?

4

4 回答 4

70

变量变量的正确语法是:

${"check" . $counter} = "some value";

但是,我强烈反对这种做法。您尝试完成的工作很可能可以通过使用arrays更优雅地解决。示例用法:

// Setting values
$check = array();
for ($counter = 0; $counter <= 67; $counter++){
    echo $counter;
    $check[] = "some value";
}

// Iterating through the values
foreach($check as $value) {
    echo $value;
}
于 2012-07-31T12:39:50.363 回答
5

这在某些情况下是可用的。例如,如果您的应用在 DB 中有 2 个语言条目。

echo $this->{'article_title_'.$language};

这比例如这个更有用;

if($language == 'mylanguage1')
    echo $this->article_title_mylanguage1;
else
    echo $this->article_title_mylanguage2;

显然,这是您在多语言应用程序中不应该做的事情,但我见过这样的案例。

于 2013-07-09T18:39:16.977 回答
5

您应该使用 ${'varname'} 语法:

for ($counter=0,$counter<=67,$counter++){
    echo $counter;
    ${'check' . $counter} ="some value";
}

这会起作用,但为什么不只使用数组呢?

$check[$counter] = "some value";
于 2012-07-31T12:43:53.140 回答
0

一个数组可以完成这个。

$check = array();

for($counter = 0; $counter <= 67; $counter++) {
    $check[] = "some value";
    var_dump($check[$counter]);
}
于 2012-07-31T12:42:28.117 回答