Why strings in $_POST can not contain a dot "."?

Its documented in php.net as:

Dots and spaces in variable names are converted to underscores.


This has been there since the original commit to CVS, more than 10 years ago.

It has a comment:

/* ensure that we don't have spaces or dots in the variable name (not binary safe) */

I have no idea why it isn't "binary safe"... You'd have to ask Zeev.

Current link: https://github.com/php/php-src/blob/master/main/php_variables.c#L93


That is probably a relict from register_global = On times. $_GET/$_POST variables were turned into standard variables ($_GET['foo'] became $foo). Variable names can't contain dots so they were internally converted.

Tags:

Php

Post