11 $s = "a=b&r[]=0&r[]=1&r[]=2&rr[][]=00&rr[][]=01&1=2";
12 $e = "a=b&r%5B0%5D=0&r%5B1%5D=1&r%5B2%5D=2&rr%5B0%5D%5B0%5D=00&rr%5B0%5D%5B1%5D=01&1=2";
13 $q = new http\QueryString($s);
15 var_dump($e === (string) $q);
16 var_dump($e === $q->get());
18 printf("Get defval\n");
19 var_dump("nonexistant" === $q->get("unknown", "s", "nonexistant"));
20 var_dump(null === $q->get("unknown"));
23 var_dump("b" === $q->get("a"));
24 var_dump(0 === $q->get("a", "i"));
25 var_dump(array("b") === $q->get("a", "a"));
26 var_dump((object)array("scalar" => "b") == $q->get("a", "o"));
29 var_dump(array("0","1","2") === $q->get("r"));
32 var_dump(array(array("00","01")) === $q->get("rr"));
35 var_dump(2 == $q->get(1));
36 var_dump("2" === $q->get(1, "s"));
37 var_dump(2.0 === $q->get(1, "f"));
38 var_dump($q->get(1, "b"));
41 var_dump("b" === $q->get("a", http\QueryString::TYPE_STRING, null, true));
42 var_dump(null === $q->get("a"));
45 $q->set(array("a" => null, "r" => null, "rr" => null, 1 => null));
46 var_dump("" === $q->toString());
48 $q = new http\QueryString($s);
51 var_dump($e === (string) new http\QueryString($q));
52 var_dump(http_build_query(array("e"=>$q->toArray())) === (string) new http\QueryString(array("e" => $q)));
55 var_dump($q->toArray() === iterator_to_array($q));
57 printf("Serialize\n");
58 var_dump($e === (string) unserialize(serialize($q)));