phpで変数名に文字列を加えたり追加する

PHPの変数名を動的に変更する方法

 

今回ご紹介する素敵tipsは、動的に変数名を変える方法です。

もう少し詳しく言うと、
変数名に後から文字列を付け加えて新しい変数名にする方法です。
とにかく、覚えていて損はありませんので引続きご覧下さい!

 

変数名を変えられるとこんなときに便利

広告を表示する場合、同じ広告ばかりだと飽きちゃいますし、
広告主が複数いた場合、1社だけ優遇するわけにはいきませんよね?

そんな時、思い立つのが!ランダム表示!

広告表示でランダムにしたい

例に出した画像は、アドセンスですがこの部分をランダムに表示できたら
多くの広告を表示出来るし~なんか素敵!

具体的にソースはどうするの?

DBなど利用せず、phpのみでどうにかするための方法は以下のとおり!

1,変数に広告を代入し、変数に連番を付ける
2,広告数に応じた数字をランダムに取得
3,ランダムに取得した数字を変数名に加える・追加する
4,表示する

問題は、3の変数名に加える・追加するところですよね?
変数の値を連結するだけなら下記の方法で問題ありません。

$abc = "abc"; 
$defg = "defg"; 
echo $abc.$defg; 

変数名に文字列を加える・追加するには別の方法が必要になります。

変数名をあとから変えるってどういうこと?

つまりは、下記のようにしたいわけです。

$hyoujisitai_01 = "表示したい01";
$hyoujisitai_02 = "表示したい02";
$suuji_01 = "01";
$suuji_02 = "02";

$hyoujisitai_(この部分に$suuji_01か$suuji_02の値を加えたい)

やり方は特殊だけど簡単

変数名に変数の値を加える・追加する方法は下記です!

$hyoujisitai_01 = "表示したい01";
$suuji_01 = "01";
echo "${'hyoujisitai_'.$suuji_01}";

これで、hyoujisitai_の後ろに$suuji_01の値、01が加わり
$hyoujisitai_01として処理されるようになります。

{}の中は変数名ですよという宣言になります。

 

ランダムに変数名を変更するためのソースコード

変数名をランダムに変更したい場合は、rand関数を使います。下記が例です。

$hyoujisitai_1 = "表示したい1";
$hyoujisitai_2 = "表示したい2";
$suuji_1 = "1";
$suuji_2 = "2";
$random_no = rand(1,2);
echo "${'hyoujisitai_'.$random_no}";

これで、1~2の間の数字がランダムに選ばれ、変数名に加えられて処理されます。
この方法を使えば楽にランダム表示が可能になります(`・ω・´)ゞ

お役に立ちましたでしょうか?

投稿日: 2012/02/29
最終更新日: 2017/10/28
 
筆者のご紹介
角政典@moreiic
真性のお家大好きフリーランスです。プログラムよりご飯の方が断然好き!博多出身のデブデザイナー。インドアだけど遊んでくれる人募集中!
よく検索されてる記事