[PHP-users 5201] 配列の変数名に変数を使う
php-users@php.gr.jp
php-users@php.gr.jp
Mon, 04 Feb 2002 11:19:49 +0900
札幌のかずと申します。
変数名に変数を使う方法として
$の後に変数を{}でくくる方法があり、
例)
$abc = 'a';
$hoge = 'abc';
print("$abc = ${$hoge}<BR>");
結果)
a = a
となり、変数名として、$abc の内容が展開されました。
ところが、
配列の変数名に変数を使う方法がわかりません
例)
$def[0] = 'a';
$hoge = 'def';
print("$def[0] = ${$hoge}[0]<BR>");
結果)
a = Array[0]
となり、$def[0] の内容が求められません。
また、$$hoge として指定しますと
例)
$def[0] = 'a';
$$hoge = 'def';
print("$def[0] = $${$hoge}[0]<BR>");
結果)
a = $def[0]
となり、やはり、$def[0] の内容が展開されません
マニュアルには、以下の記載がありましたが、
望むような結果にはなりませんでした。
配列に変数を利用する方法について、
ご教示いただきたく、宜しくお願い申しあげます。
> 可変変数を配列で使用する際には、曖昧さの問題を解決する必要があります。
> つまり、$$a[1]と書いた場合、 $a[1]を変数として使用したいのか、
> $$aを変数とし [1] を変数の添え字としたいのかを、
> パーサが知る必要があるのです。
> この曖昧さを解決するには、前者では ${$a[1]}とし、
> 後者では ${$a}[1]とする構文を用います。
Email:Linux@Lupin.net