[PHP-users 761] Re: 可変変数? と配列、関数

DANJO Tomoki php-users@php.gr.jp
Thu, 19 Jul 2001 12:21:23 +0900


こんにちは
檀上@中京エレクトロンです

> 重松と申します。
> 可変変数、というのでしょうか、$$ というふうに変数の前に記述する構文です
が、
> ちょっと理解不能な症状で困っています。
> <?php
> print "test<br>";
> $x = "em_report";
> $$x = array(1=>"Hello",2=>"world");
> print $$x[2] . "<br>";
> ?>
> というコードを実行したのですが、私は、「world」を期待するのですが、どうも
そ
> のように動きません。
> test
> /usr/local/apache/bin/httpd
> という結果になります。
print $$x[2]."<br>";
を
print ${$x}[2]."<br>";
にすると World が表示されますね。

> 何か根本的に誤解しているのでしょうか?
> http://www.php.net/manual/ja/language.variables.variable.php
> には特にヒントはないようでした。
上記ページより引用:

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

:引用ここまで
--
檀上智紀@中京エレクトロン
to_danjo@electron.ctv.ne.jp