See by yourself :
<?php
if (count ($_GET) == 0)
{
// redirect with GET parameters
$strange_get = "=customer&p[1]=data&p[1]=admin_data&type_id=5&a[1]->x=zz&b[1][2]=one&b[1][]=two"
header ("Location:${_SERVER['PHP_SELF']}?$strange_get");
exit();
}
// see what we got
print_r($_GET);
?>
Result:
Array
(
[p] => Array
(
[1] => admin_data
)
[type_id] => 5
[a] => Array
(
[1] => zz
)
[b] => Array
(
[1] => Array
(
[2] => one
[3] => two
)
)
)
customer was ignored because no name was given
p[1] was set twice, so only the last value remained
a[1]->x=zz was interpreted as a[1]=zz
b[1][2] and b[1][] worked as expected
Arrays are the only things you can expect to work out of the box.
For instance, passing "?index=10&value[index]=123" will not interpret index magically