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();
17 $q = http\QueryString::getGlobalInstance();
19 printf("\nStandard getters:\n");
20 var_dump($q->getString("str"));
21 var_dump($q->getInt("num"));
22 var_dump($q->getFloat("dec"));
23 var_dump($q->getInt("dec"));
24 var_dump($q->getFloat("dec"));
25 var_dump($q->getBool("bool"));
26 var_dump($q->getInt("bool"));
27 var_dump($q->getBool("num"));
28 var_dump($q->getInt("num"));
29 var_dump($q->getArray("arr"));
30 var_dump($q->getArray("ma"));
31 var_dump($q->getObject("arr"));
32 var_dump($q->getObject("ma"));
36 printf("\nClone modifications do not alter global instance:\n");
37 $q->mod(array("arr" => array(3 => 3)));
40 printf("\nClone modifications do not alter standard instance:\n");
41 $q2 = new http\QueryString($s);
42 $q3 = $q2->mod(array("arr" => array(3 => 3)));
43 printf("%s\n%s\n", $q2, $q3);
46 printf("\nIterator:\n");
47 $it = new RecursiveIteratorIterator($q2, RecursiveIteratorIterator::SELF_FIRST);
48 foreach ($it as $k => $v) {
49 $i = $it->getDepth()*8;
50 @printf("%{$i}s: %s\n", $k, $v);
53 printf("\nReplace a multi dimensional key:\n");
54 printf("%s\n", $q2->mod(array("ma" => null))->set(array("ma" => array("l1" => false))));
57 $qu = new http\QueryString("ü=ö");
58 printf("utf8: %s\n", $qu);
59 printf("latin1: %s\n", method_exists($qu, "xlate") ? $qu->xlate("utf-8", "latin1") : "%FC=%F6");
61 printf("\nOffsets:\n");
63 $q2["ma"] = array("bye");
65 var_dump(isset($q2["ma"]));
67 var_dump(isset($q2["ma"]));
75 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
108 object(stdClass)#%d (2) {
114 object(stdClass)#%d (2) {
130 Clone modifications do not alter global instance:
131 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
133 Clone modifications do not alter standard instance:
134 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
135 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
152 Replace a multi dimensional key:
153 str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D=