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