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";

しかし、私はこれを強くお勧めしません。達成しようとしていることは、配列を使用することで、よりエレガントに解決できる可能性があります。使用例:

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

${'varname'}構文を使用する必要があります。

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

これは機能しますが、配列を使用しないのはなぜですか?

$check[$counter] = "some value";
于 2012-07-31T12:43:53.140 に答える
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 に答える
0

アレイはこれを実現します。

$check = array();

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