PHP变量 - 连接变量名称

Smu*_*ger 16 php variables concatenation append

我有一个PHP for循环:

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

1
$check1="some value"

2
$check2="some value"

3
$check3="some value"

4
$check4="some value"

etc etc 
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?我错过了一些明显的东西吗

我试过$check.$counter="some value"但是失败了.

任何建议?

像往常一样,

Tim*_*per 56

变量变量的正确语法是:

${"check" . $counter} = "some value";
Run Code Online (Sandbox Code Playgroud)

但是,我强烈反对这一点.您尝试完成的任务最有可能通过使用数组更优雅地解决.用法示例:

// 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;
}
Run Code Online (Sandbox Code Playgroud)


Adu*_*hay 5

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

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

这将工作,但为什么不只是使用数组?

$check[$counter] = "some value";
Run Code Online (Sandbox Code Playgroud)


arm*_*rma 5

这在某些情况下是可用的.例如,如果您的应用在数据库中有类似2个语言条目的内容.

echo $this->{'article_title_'.$language};
Run Code Online (Sandbox Code Playgroud)

这比例如更有用;

if($language == 'mylanguage1')
    echo $this->article_title_mylanguage1;
else
    echo $this->article_title_mylanguage2;
Run Code Online (Sandbox Code Playgroud)

显然这是您在多语言应用程序中不应该做的事情,但我已经看到过这样的情况.