下划线的参数名称中的点符号已被替换 (PHP)

The symbol of dot has been replaced in parameter names on the underscore (PHP)

我发送 POST 参数名称为“param.name”

如果我阅读 php://input 一切正常,但如果我尝试从数组 $_POST['param.name'] 中获取参数,则它不存在,因为点被替换为下划线,我需要以这种方式获取参数 $_POST['param_name'].

也许 PHP 中的某些设置我应该调整...

我用的是PHP7.4.15

这是 their official documentation 中提到的预期 PHP 行为。据我所知,PHP 在解析 $_POST 超全局时应用此规则,因为与向后兼容性相关的原因 (register_globals).

php://input 显示您的实际参数名称的原因是因为这是原始输入流,显示尚未被 PHP 解析的数据。 $_POST 数据 解析。

简而言之,避免对输入参数命名使用点符号 PHP 或者愿意实现自己的解析机制以支持它。