#クエリパラメータで配列を渡してぇ(唐突
ある時、理由は忘れちまったが俺はそう思ったんだ。
思い立ったが吉日、すぐに旅に出たんた。
##単純に配列書いちまえば良いんじゃねぇか?
http:www.sakdor.net?var=[1,2,3]
varという変数は配列、そう書いちまえば良い。
俺はそう思ってたから旅支度は簡単にしていて
日帰りのつもりだったんだ。
でも甘かった、この旅は短くは無い。
PHPで$_GET
をvar_dump
してみると…
array(1) { ["var"]=> string(7) "[1,2,3]" }
と表示される。
そう、var
は[1,2,3]
という文字列が入った、ただの変数だ。
##じゃぁ逆転の発想をしてしまえ
最初に訪れた街を出て一ヶ月はたっただろうか
悩み続けた先に、ある1つの閃きが生まれた。
「$varという配列に代入したら良いのではないか?」
ということだ。
http:www.sakdor.net?var[0]=1&var[1]=2&var[2]=3
結果はこうなった
array(1) { ["var"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } }
無事にvarという配列が出来上がっている!!
##研究を重ねた末に
奇跡の大発明で満足しなかった俺は
更に旅を続けて、研究に研究を重ねた。
すると新しい発見がみつかった。
- 連想配列もクエリパラメータから受け取れる
http://www.sakdor.net/test/?var[a]=1&var[b]=2&var[c]=3
こういう感じにURLを書くことで
array(1) { ["var"]=> array(3) { ["a"]=> string(1) "1" ["b"]=> string(1) "2" ["c"]=> string(1) "3" } }
連想配列を受け取ることが出来るのを発見した。
ちなみに?var["a"]=1
とURLを書くと出力はarray(1) { ["var"]=> array(1) { [""a""]=> string(1) "1" } }
となってしまう。
- keyが無くても代入出来る。
http://www.sakdor.net/test/?var[]=1&var[]=2&var[]=3
こういう感じにURLを書くことで
array(1) { ["var"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } }
URLの左から右の順で配列に格納される。
##引き算されたスマートなものへ
旅を終え、自宅へ帰った。
研究が世に認められ、俺は富と名声を得た。
だが、なんだろうか、この虚しさは。
全てを知り尽くしたからだろうか。
次に私は何を求めれば良い?
答えはすぐに見つかった。
追い求め足し算するのはやめにしたんだ。
https://www.sakdor.net/test/?var=1,2,3
そうコレでよかったんだ。
「これでは1,2,3という文字列じゃないか」って?
$array=explode(",",$_GET[var]);
こうすれば良いのさ。
そうしたら
array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" }
出来上がりだ。
何も仰々しくURLを書かなくたって良い。
ありのままの姿で良いんだ。
#編集後記
入社18日目
俺は一体何を書いているんだ???