1--TEST--
2Test parse_str() function : basic functionality
3--FILE--
4<?php
5
6/* Prototype  : void parse_str  ( string $str  [, array &$arr  ] )
7 * Description: Parses the string into variables
8 * Source code: ext/standard/string.c
9*/
10
11echo "*** Testing parse_str() : basic functionality ***\n";
12
13echo "Basic test WITHOUT result arg\n";
14$s1 = "first=val1&second=val2&third=val3";
15var_dump(parse_str($s1));
16var_dump($first, $second, $third);
17
18echo "\nBasic test WITH undefined var for result arg\n";
19$s1 = "first=val1&second=val2&third=val3";
20var_dump(parse_str($s1, $res1));
21var_dump($res1);
22
23echo "\nBasic test WITH existing non-array var for result arg\n";
24$res2 =99;
25$s1 = "first=val1&second=val2&third=val3";
26var_dump(parse_str($s1, $res2));
27var_dump($res2);
28
29echo "\nBasic test with an existing array as results array\n";
30$res3_array = array(1,2,3,4);
31var_dump(parse_str($s1, $res3_array));
32var_dump($res3_array);
33
34?>
35===DONE===
36--EXPECTF--
37*** Testing parse_str() : basic functionality ***
38Basic test WITHOUT result arg
39NULL
40string(4) "val1"
41string(4) "val2"
42string(4) "val3"
43
44Basic test WITH undefined var for result arg
45NULL
46array(3) {
47  ["first"]=>
48  string(4) "val1"
49  ["second"]=>
50  string(4) "val2"
51  ["third"]=>
52  string(4) "val3"
53}
54
55Basic test WITH existing non-array var for result arg
56NULL
57array(3) {
58  ["first"]=>
59  string(4) "val1"
60  ["second"]=>
61  string(4) "val2"
62  ["third"]=>
63  string(4) "val3"
64}
65
66Basic test with an existing array as results array
67NULL
68array(3) {
69  ["first"]=>
70  string(4) "val1"
71  ["second"]=>
72  string(4) "val2"
73  ["third"]=>
74  string(4) "val3"
75}
76===DONE===
77