PHP变量 - 串联变量名(PHP Variables - Concatenate variable

2019-06-17 13:51发布

我有一个循环PHP:

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

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

}

什么我试图acheive是使用for循环变量并将其追加到另一个变量的名称。

Bascially,我希望PHP输出为每一行如下

1
$check1="some value"

2
$check2="some value"

3
$check3="some value"

4
$check4="some value"

etc etc 

我怎样才能达致这? 我失去了一些东西明显?

我曾尝试$check.$counter="some value" ,但失败。

有什么建议?

Thans一如既往,

Answer 1:

对于正确的语法变量变量是:

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

但是,我非常不鼓励这样。 你要完成最可能通过使用来解决更优雅的阵列 。 实例:

// 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;
}


Answer 2:

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

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

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

$check[$counter] = "some value";


Answer 3:

这是在某些情况下使用。 例如,如果您的应用程序有类似的DB 2名语言的条目。

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

这比例如这个更有用;

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

显然,这是你不应该在你的多语言应用程序做什么,但我已经看到了这样的案例。



Answer 4:

数组会做到这一点。

$check = array();

for($counter = 0; $counter <= 67; $counter++) {
    $check[] = "some value";
    var_dump($check[$counter]);
}


文章来源: PHP Variables - Concatenate variable name