[PHP-users 24587] Re: globalで配列の宣言について

Keiko Morikawa cob_morikawa @ ipc.pioneer.co.jp
2005年 2月 18日 (金) 16:02:57 JST


もりかわです。

まず最初にお礼を。
伊東様、恵様、廣瀬様、色々とありがとうございます。

ヒントをモトに作成していたのですが、あまりうまくいかず、下記の通りにしました。

  global ${'hoge_'.$aaa};
  global ${'tako_'.$aaa}; ...

とphp側の先頭に宣言し、html画面側で確認OKでした。

伊藤様が教えて下さった通り、
  $gval_name = 'hoge_0'; //グローバル変数名
  global $$gval_name;
と、このまま書いてみたのですが、どうしてもhtml画面側に値が渡りませんでした。
特にエラーは出ませんでした。

その後、恵様が「配列のまま受け渡しすれば...」と言って下さった為、上記の通りに書いてみました。
そうしたら、textareaとcheckboxの値がちゃんと渡ってました。

本当にありがとうございました。


で、廣瀬様の ↓ ですが、
> $GLOBALS["hoge_".$aaa][$bbb]
> 
> じゃダメですか?
> 
> http://www.php.net/manual/ja/language.variables.scope.php
> 
> # globalで配列の宣言ってのからは外れてますが・・・
いえいえ、ダメではないです。
コチラも考えてはおりました。
が、スーパーグローバルはあまり使わない方がいいとコチラのMLにも書いてありましたので、

# っていったら、globalもですよね(-_-;)
# 支離滅裂だなぁ。

基本的に、globalや$GLOBALSは使わない方がいいのでしょうか?
もしよろしければ、皆様どうされているのか教えて頂けますでしょうか。




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