更新日: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文の中で使って下さいね。
本来であれば配列を使うのがベストなのですが、既存のソースコードの改定となると使わざるを得ない状況があります。
お試し下さい。