変数名を可変にできると便利なことが時々あります。可変変数では、変数
名を動的にセットし使用できます。通常の変数は、次のような命令でセッ トします。
可変変数は、変数の値をとり、変数の名前として扱います。上の例では、
hello
は、ドル記号を二つ使用することにより、 変数の名前として使用することができます。つまり、
ここまでで、二つの変数が定義され、PHP シンボルツリーに定義されてい
ます。これらは、"hello" を値とする
$a
と "world" を値とする
$hello
です。そこで、次の命令
の出力は、次の命令と全く同じとなります。
すなわち、両方共、
hello world
を出 力します。
可変変数を配列で使用する際には、曖昧さの問題を解決する必要がありま す。つまり、
$$a[1]
と書いた場合、
$a[1]
を変数として使用したいのか、
$$a
を変数とし [1] を変数の添え字としたいのかを、 パーサが知る必要があるのです。この曖昧さを解決するには、前者では
${$a[1]}
とし、後者では
${$a}[1]
とする構文を用います。
可変変数は、PHPの
スーパーグローバル配列
で使用することができないことに注意して 下さい。これは、
${$_GET}
のようなことを行なうことが できないことを意味します。 スーパーグローバルおよび
HTTP_*_VARS
の 利用可能性を処理する手段を探している場合、これらの
リファレンスを作成
する ことを試してみて下さい。