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

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

Susan Sarandon
发布: 2024-12-08 22:44:10
原创
680 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板