[PHP-users 24118] 可変変数について

Koichi Shimamura MAF01541 @ nifty.ne.jp
2005年 1月 13日 (木) 13:41:08 JST


島村です。

$_POST や $_GET を展開して利用しようと次のようなスクリプトを組みました。

      1 <?php
      2     foreach ($_GET as $key => $value) {
      3         $$key = $value;
      4     }
      5     echo "aaa=$aaa, key=$key, bbb=$bbb";
      6 ?>

これを次のように呼び出すと

http://192.168.0.3/test.php?aaa=456&key=123&bbb=789

このような結果となってしまいます。

aaa=456, key=bbb, bbb=789

2つ目の引数 key とスクリプト内で用いている $key がダブってしまってうまく変数
に値をセットできません。変数名がダブらないようにすれば期待通りに展開して値をセ
ットしてくれます。

$$key を ${$key} としても結果は同じでした。

register_globals が off に切り替わったための逃げの処理なのですが、皆さんどのよ
うにされていますか?

島村幸一


PHP-users メーリングリストの案内