首页 >后端开发 >php教程 >PHP 如何处理来自 GET、POST 和 Cookie 的变量名称中的句点?

PHP 如何处理来自 GET、POST 和 Cookie 的变量名称中的句点?

Susan Sarandon
Susan Sarandon原创
2024-12-08 22:44:10677浏览

How Does PHP Handle Periods in Variable Names from GET, POST, and Cookies?

PHP 变量名称和字符替换

在 PHP 中,通常的做法是使用句点/点 (. )在他们的名字中。但是,PHP 会自动用下划线 (_) 替换这些点。此行为是由于 PHP 使用点来连接变量名称而引起的。

说明

根据 PHP 文档,变量名称中不允许使用点字符 (.)。这可能会导致连接变量时出现意外行为,如下面的示例 PHP 代码所示:

$varname.ext;  /* invalid variable name */

在上面的示例中,PHP 会将右侧 (ext) 解释为字符串。为了防止这种情况,PHP 将传入变量名称中的点替换为下划线。

后果

此替换行为不仅影响 GET 和 POST 参数,还影响 cookie。例如,如果设置了名为“x.y”的 cookie,PHP 会自动将其内部表示形式更改为“x_y”。

解决方案

虽然不可能阻止 PHP 的点到下划线替换,有一些解决方法可以检索带点的原始变量名称。一种解决方案是在读取变量后使用 str_replace() 函数将下划线替换回点,如awnerd评论中所建议的。

以上是PHP 如何处理来自 GET、POST 和 Cookie 的变量名称中的句点?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn