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"
しかし、これは失敗します。
どうすればこれを達成できますか?私は明白な何かを見逃していますか?
変数変数 の正しい構文は次のとおりです。
${"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;
}
これは、場合によっては使用できます。たとえば、アプリのDBに2つの言語エントリのようなものがあるとします。
echo $this->{'article_title_'.$language};
これは、たとえばこれよりもはるかに使いやすくなっています。
if($language == 'mylanguage1')
echo $this->article_title_mylanguage1;
else
echo $this->article_title_mylanguage2;
明らかに、これはあなたの多言語アプリで行うべきではないことですが、私はこのようなケースを見てきました。
$ {'varname'}構文を使用する必要があります:
for ($counter=0,$counter<=67,$counter++){
echo $counter;
${'check' . $counter} ="some value";
}
これは機能しますが、なぜ配列を使用しないのですか?
$check[$counter] = "some value";
アレイはこれを実現します。
$check = array();
for($counter = 0; $counter <= 67; $counter++) {
$check[] = "some value";
var_dump($check[$counter]);
}