更新日:2022年1月21日
今回は変数名の一部を変数にする可変変数のご紹介です。
使い方は様々ありますが、主にfor文と組み合わせて使うのが一般的でしょう。
例として、例えば下記のようなPHPがあったとします。
問題を出題し、その答えが合っているかどうかを判断するPHPです。
<?php
$question1 = "りんご";
$answer1 = "りんご";
$question2 = "みかん";
$answer2 = "みかん";
$question3 = "なし";
$answer3 = "なし";
if($question1 == $answer1){
$result1 = "正解です";
}else{
$result1 = "間違っています";
}
if($question2 == $answer2){
$result2 = "正解です";
}else{
$result2 = "間違っています";
}
if($question3 == $answer3){
$result3 = "正解です";
}else{
$result3 = "間違っています";
}
?>
長ったらしくなってしまうので、もう少しスマートに書けないかなぁと思う訳ですが、そこで使えるのが可変変数になります。
要は$question1、$answer1、$result1の1の数字の箇所を変数にしちゃうってことです。
上記のPHPを可変変数を使って記述すると下記のようになります。
<?php
$question1 = "りんご";
$answer1 = "りんご";
$question2 = "みかん";
$answer2 = "みかん";
$question3 = "なし";
$answer3 = "なし";
for($i=0; $i<3; $i++) {
if(${"question".$i} == ${"answer".$i}){
${"result".$i} = "正解です";
}else{
${"result".$i} = "間違っています";
}
}
?>
$question1
を
${"question".$i}
と置き換えることで可変変数が使えます。for文の中で使って下さいね。
本来であれば配列を使うのがベストなのですが、既存のソースコードの改定となると使わざるを得ない状況があります。
お試し下さい。