Of course, you don't have to predefine the variable for this function because PHP sets them automatically.
See the example from PHP.net for what happens when the second argument is defined/undefined:
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>
So, if you don't define the second argument, each key=>value pair in the string is made into an actual variable, whereas if you define a variable to be set, they are put into an array as that variable. PHP will automatically create everything for the function, you don't have to pre-define anything.