[PHP]変数名に文字列を使用したい(可変変数)

変数名を文字列で使用したい人ってだいぶ特殊な事していますよね。
私も今まで様々な事してきて約10年…
初めてやりたいと思ったのでやってみました。

正式名称は可変変数

検索する時は大体正式名称なんてわからないので「変数名 文字列」なんかで検索しますよね。
たぶんそれで辿り着いた人はいると思いますが…

PHPによると正式名称は「可変変数」と言います。

PHPマニュアル:可変変数

しっかりマニュアルにも書かれているし、普段の開発では使わないので知らない人も多いですよね。

変数名を文字列で指定する

可変変数の設定方法はいくつか方法があります。
まずは、一番やりたかった文字列を変数名にする方法です。

// 通常の場合
$a = 'hello';

echo $a; // hello

// 可変変数の設定
${'hello'} = 'world';

echo $hello; // world

「${‘文字列’}」とすることで、変数名として今後使い続ける事ができます。

変数の値も使いたいし、変数名も使いたい

これは特殊な方法だと思っています。
でも、PHPマニュアルでは最初に紹介されるほど…
このやり方はちょっと複雑になりそうです。

// 変数に値をセット
$a = 'hello';

// 可変変数としてセット
$$a = 'world';

// 出力方法1
echo $a.${$a}; // helloworld

// 出力方法2
echo $a.$hello; //helloworld

echoしている部分は、可変変数として出力するか、普通の変数として出力するかになります。
$を2つ連続して書くことにより、変数の値を変数名として使用できるということですね。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください