[PHP-users 24] Re: (再送配列を POST等で渡す時の引数について

php-users@php.gr.jp php-users@php.gr.jp
Tue, 12 Jun 2001 18:38:51 +0900


まつざき様、近藤様
早速のレスありがとうございます。

説明不足な上に引数でなく添字と書いてしまっていました。
大変失礼致しました。

つまり、私のやりたかった事は以下の様なフォームからtest.phpへ
数個のパラメーターを送る事で、添字が 0 から 32bitMAXを超える
値までの大量の配列を送信する訳ではありませんでした。
-------------------------------------------------------
<form action="test.php" method="post">
<input type="text" name="hoge[98765432100]" value="10">
<input type="text" name="hoge[98765432101]" value="20">
<input type="text" name="hoge[98765432105]" value="30">
<input type="submit" name="" value="send">
</form>
-------------------------------------------------------
ネットワークの負荷はそれほどでもないと思います。
たぶん....

name="hoge[98765432100]" だと test.php で
添字が桁あふれしてしまうので、hoge['abc'] 等の連想配列の様に
hoge[98765432100]の添字の部分 '98765432100' を文字列として
送信して test.php 内では $hoge['98765432100'] として
扱えるような事は出来ないものか....
と考えていた次第です。


まつざき様の可変変数を使った場合
> <input type="text" name="hoge0" value="10">
> <input type="text" name="hoge1" value="20">
> <input type="text" name="hoge2" value="30">

試してみたところ、

$i="0";
echo ${"hoge$i"};

で参照する事ができ、32bitを超える値でも大丈夫でした。
可変変数は普段あまり使わないので、すっかり存在を忘れて
おりました。
また、foreach のように値のある物だけループ処理をしたいのですが
この可変変数の場合は、少し難しい感じがするのですが、
いかがでしょうか?

その辺りを考えているうちに、大人しく name="hoge_0" 等として
explode等で自分で切り分けるのが一番なのかと思ってきました。

--
久保
kenkubo@n-verde.co.jp