In PHP documentation I found following part:
Dots and spaces in variable names are converted to underscores. For example
<input name="a.b" />becomes$_REQUEST["a_b"].
I'm aware that while PHP couldn't make variable $a.b for register_globals, but this explanation doesn't make me fully happy. While indeed, register_globals would have to do it (or, even if wouldn't have because of ${'a.b'}), but why it affected global variables like $_GET where technically you had to give string since beginning (so PHP programmers couldn't forgot about ${'a.b'} sort of stuff in case of $_GET).
And why it only affects dots and spaces? While I can understand dots (<input type=image>), why it would affect spaces. And what about hyphens?