Beware using parse_str in a function that has vars passed by reference. It seems that parse_str actually creates new vars even if vars of the same name exist. If you pass by ref vars of the same name as those in a query string being parsed new LOCAL vers will be created and you won't get any values passed back to the caller (relates to what Maikel mentioned below)
An unrealistic example (vaguely related to what I was doing when I found this out)...
function get_title($query,&$title)
{
parse_str($query);
$title=str_replace("_"," ",$title);
}
$title="foo";
$query = "context=something&title=Title_of_Something";
get_title($query,$title);
echo $title .... "foo"