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

Keiko Morikawa cob_morikawa @ ipc.pioneer.co.jp
2005年 2月 18日 (金) 13:45:55 JST


初めまして。もりかわと申します。
いつも拝見させて頂いております。

環境:Red Hat 9
Apache2.0.49
PostgresSQL7.4.2
PHP4.3.6

マニュアルを読んだりコチラのMLで探したりしたのですが、少しだけ違う?為、質問させて頂きます。

例えば、
$hoge_0[0] 〜 $hoge_5[9]
という変数があります。

この変数は、hoge画面(hoge.html)で
<textarea name='hoge0_0' cols='30' rows='1' align=center wrap='off'><?= $hoge_0[0] ?></textarea>
と使用しています。

$hoge_0[0] 〜 $hoge_5[9]のtextarea内容は、DBに格納しています。

画面から入力されたtextarea内容をPHPにて取得し、DBへ格納←→読込を繰り返し行います。

当初、hoge.phpの内容をhoge.htmlに書いて、テストを行ってました。(ローカルの状態ですよね。)
この時、格納←→読込はOKだったのですが、格納←→読込部分をhoge.html以外の画面でも使用する事になり、hoge.phpに共通関数として作成。
現在詰まっています。

ローカル内のhoge.php内では、
 $aaa = 0〜5 DBの検索結果(プライマリーキー)で、データ毎に変わる
 $maxaaa = 0〜9 上記$aaaのキーでDB検索し、その結果のカウント数。
for文に使用する
 $bbb = 0〜9 for文&添え字に使用
を使用して、$hoge_0[0] 〜 $hoge_5[9]の実現を以下のように行いました。

for($bbb=0;$bbb<=maxaaa;$bbb++){
 ${hoge_."$aaa"}[$bbb] = "DBデータを渡す";
}

が、コレはhoge.htmlに直打ちしていたから出来たんですよね。
hoge.phpとして独立させた場合、
 require("./hoge.php");
ナドとして、hoge.htmlの上の方に書いたのですが、$hoge_0[0] 〜 $hoge_5[9]の値はhoge.htmlに渡せません。

渡せないのは、ローカル変数として宣言しているから、と認識しています。
この為、globalを使用する事としたのですが、どのように宣言を書いたら良いのか、教えて頂けますでしょうか。

[試したこと]
 global ${'hoge_'.$aaa}[$bbb];
では 「Parse error: parse error, unexpected '[', expecting ...」とエラーになります。
また、
 global ${'hoge_'.$aaa}{$bbb};
では 「Parse error: parse error, unexpected '{', expecting ...」とエラーになります。

※ 引数渡しは考えていません。(数が多い為)


かなり長文になってしまい、申し訳ありません。
宜しくお願い致します。 



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