通过ajax将json对象传给php后台,为什么json字符.会被自动替换为_

https://img.mukewang.com/5c8f5a4d000191b408000227.jpg
打印后台返回的信息
https://img.mukewang.com/5c8f5a4e00019e7c04870293.jpg

https://img.mukewang.com/5c8f5a4f000140ee03700113.jpg
有什么办法能够保留字符“dl.is_distribution”吗

繁花如伊
浏览 452回答 4
4回答

MMMHUHU

命名不规范吧

繁星淼淼

你得看看TP里面I函数是怎么处理的.

慕容3067478

官方文档有说明这个现象: 变量名中的点和空格被转换成下划线。例如 <input name="a.b" /> 变成了 $_REQUEST["a_b"]。 原因是: 通常,PHP 不会改变传递给脚本中的变量名。然而应该注意到点(句号)不是 PHP 变量名中的合法字符。 <?php $varname.ext; /* 非法变量名 */ ?> 这时,解析器看到是一个名为 $varname的变量,后面跟着一个字符串连接运算符,后面跟着一个裸字符串(即没有加引号的字符串,且不匹配任何已知的健名或保留字)'ext'。很明显这不是想要的结果。出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。 其实不止点,下面的都会被处理 chr(32) ( ) (space)chr(46) (.) (dot)chr(91) ([) (open square bracket)chr(128) - chr(159) (various) PHP 对于 web 环境做了很多处理,这些只是冰山一角,希望能给楼主和大家带来帮助。 顺便说下,用点分隔变量名,是不是不太符合工程命名规范?驼峰、下划线都可以呀。
打开App,查看更多内容
随时随地看视频慕课网APP