PHP マニュアル
前のページ | 第 8 章 変数 | 次のページ

# 可変変数

変数名を可変にできると便利なことが時々あります。可変変数では、変数 名を動的にセットし使用できます。通常の変数は、次のような命令でセッ トします。

    <?php
    $a = "hello";
    ?>

可変変数は、変数の値をとり、変数の名前として扱います。上の例では、 hello は、ドル記号を二つ使用することにより、 変数の名前として使用することができます。つまり、

    <?php
    $$a = "world";
    ?>

ここまでで、二つの変数が定義され、PHP シンボルツリーに定義されてい ます。これらは、"hello" を値とする`$a`と "world" を値とする`$hello`です。そこで、次の命令

    <?php
    echo "$a ${$a}";
    ?>

の出力は、次の命令と全く同じとなります。

    <?php
    echo "$a $hello";
    ?>

すなわち、両方共、`hello world`を出 力します。

可変変数を配列で使用する際には、曖昧さの問題を解決する必要がありま す。つまり、`$$a[1]`と書いた場合、 `$a[1]`を変数として使用したいのか、 `$$a`を変数とし [1] を変数の添え字としたいのかを、 パーサが知る必要があるのです。この曖昧さを解決するには、前者では `${$a[1]}`とし、後者では `${$a}[1]`とする構文を用います。

可変変数は、PHPの スーパーグローバル配列で使用することができないことに注意して 下さい。これは、`${$_GET}`のようなことを行なうことが できないことを意味します。 スーパーグローバルおよび`HTTP_*_VARS`の 利用可能性を処理する手段を探している場合、これらの リファレンスを作成する ことを試してみて下さい。

前のページ | ホーム | 次のページ
変数のスコープ | 上に戻る | PHPの外部から来る変数