Someone check me on this...
I think depending on your server's configuration, PHP will automatically generate variables to hold the values passed through the URL. In the configuration file, a value called
register globals can be set to on or off to determine how PHP handles passed variables. For instance, if you had your whatever.php?main=index.html, PHP could generate a variable $main that has been set to 'index.html' (assuming 'register globals' is set to 'on').
I find it better to follow Mithras' example though, since you never know how a server is going to be configured. As far as I know, PHP's
Superglobal variables can always be accessed. "It's better to assume that only the superglobal variables will be available and code accordingly."
Check
here for more info.
HTH