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?