6 version_compare(PHP_VERSION, "7.2.0-dev", "<") or die("skip only for PHP < 7.2.0");
9 str=abc&num=-123&dec=123.123&bool=1&arr[]=1&arr[]=2&ma[l1][l2]=2&ma[l2][l3][l4]=3
14 printf("\nGlobal instance:\n");
15 $q = http\QueryString::getGlobalInstance();
18 printf("\nStandard getters:\n");
19 var_dump($q->getString("str"));
20 var_dump($q->getInt("num"));
21 var_dump($q->getFloat("dec"));
22 var_dump($q->getInt("dec"));
23 var_dump($q->getFloat("dec"));
24 var_dump($q->getBool("bool"));
25 var_dump($q->getInt("bool"));
26 var_dump($q->getBool("num"));
27 var_dump($q->getInt("num"));
28 var_dump($q->getArray("arr"));
29 var_dump($q->getArray("ma"));
30 var_dump($q->getObject("arr"));
31 var_dump($q->getObject("ma"));
35 printf("\nClone modifications do not alter global instance:\n");
36 $q->mod(array("arr" => array(3 => 3)));
39 printf("\nClone modifications do not alter standard instance:\n");
40 $q2 = new http\QueryString($s);
41 $q3 = $q2->mod(array("arr" => array(3 => 3)));
42 printf("%s\n%s\n", $q2, $q3);
45 printf("\nIterator:\n");
46 $it = new RecursiveIteratorIterator($q2, RecursiveIteratorIterator::SELF_FIRST);
47 foreach ($it as $k => $v) {
48 $i = $it->getDepth()*8;
49 @printf("%{$i}s: %s\n", $k, $v);
52 printf("\nReplace a multi dimensional key:\n");
53 printf("%s\n", $q2->mod(array("ma" => null))->set(array("ma" => array("l1" => false))));
56 $qu = new http\QueryString("ü=ö");
57 printf("utf8: %s\n", $qu);
58 printf("latin1: %s\n", method_exists($qu, "xlate") ? $qu->xlate("utf-8", "latin1") : "%FC=%F6");
60 printf("\nOffsets:\n");
62 $q2["ma"] = array("bye");
64 var_dump(isset($q2["ma"]));
66 var_dump(isset($q2["ma"]));
74 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
107 object(stdClass)#%d (2) {
113 object(stdClass)#%d (2) {
129 Clone modifications do not alter global instance:
130 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
132 Clone modifications do not alter standard instance:
133 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
134 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&arr%5B3%5D=3&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
151 Replace a multi dimensional key:
152 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D=