在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP  HTML/ 通過(guò)ajax將json對(duì)象傳給php后臺(tái),為什么json字符.會(huì)被自動(dòng)替換為_(kāi)

通過(guò)ajax將json對(duì)象傳給php后臺(tái),為什么json字符.會(huì)被自動(dòng)替換為_(kāi)

clipboard.png
打印后臺(tái)返回的信息
clipboard.png

clipboard.png
有什么辦法能夠保留字符“dl.is_distribution”嗎

回答
編輯回答
巫婆

你得看看TP里面I函數(shù)是怎么處理的.

2018年5月12日 00:05
編輯回答
還吻

命名不規(guī)范吧

2017年9月11日 10:07
編輯回答
北城荒

官方文檔有說(shuō)明這個(gè)現(xiàn)象:

變量名中的點(diǎn)和空格被轉(zhuǎn)換成下劃線。例如 <input name="a.b" /> 變成了 $_REQUEST["a_b"]

原因是:

通常,PHP 不會(huì)改變傳遞給腳本中的變量名。然而應(yīng)該注意到點(diǎn)(句號(hào))不是 PHP 變量名中的合法字符。

<?php $varname.ext;  /* 非法變量名 */ ?> 

這時(shí),解析器看到是一個(gè)名為 $varname
的變量,后面跟著一個(gè)字符串連接運(yùn)算符,后面跟著一個(gè)裸字符串(即沒(méi)有加引號(hào)的字符串,且不匹配任何已知的健名或保留字)'ext'。很明顯這不是想要的結(jié)果。
出于此原因,要注意 PHP 將會(huì)自動(dòng)將變量名中的點(diǎn)替換成下劃線。

其實(shí)不止點(diǎn),下面的都會(huì)被處理

chr(32) ( ) (space)
chr(46) (.) (dot)
chr(91) ([) (open square bracket)
chr(128) - chr(159) (various)

PHP 對(duì)于 web 環(huán)境做了很多處理,這些只是冰山一角,希望能給樓主和大家?guī)?lái)幫助。

順便說(shuō)下,用點(diǎn)分隔變量名,是不是不太符合工程命名規(guī)范?駝峰、下劃線都可以呀。

2017年1月7日 07:20
編輯回答
冷溫柔

請(qǐng)參考PHP官方手冊(cè):來(lái)自PHP之外的變量

其中有一個(gè)NOTE這樣寫(xiě)道:

Note:
變量名中的點(diǎn)和空格被轉(zhuǎn)換成下劃線。例如 <input name="a.b" /> 變成了 $_REQUEST["a_b"]。

但是具體原因沒(méi)有多加說(shuō)明,我自己的理解是這樣的:
PHP對(duì)于外來(lái)的$_REQUEST變量有一個(gè)配置項(xiàng):register_globals = on,作用是讓PHP將外來(lái)全局變量自動(dòng)注冊(cè)為變量,如下:

// 如果 PHP 指令 register_globals = on 時(shí)可用
echo $username;  // 可以直接獲取post來(lái)的username變量
echo $_REQUEST['username']

于是,為了防止在register_globals = on模式下獲取注冊(cè)到類(lèi)似$xxx.xxx這樣錯(cuò)誤的變量格式,所以將空格和點(diǎn)號(hào)轉(zhuǎn)為了下劃線

2017年11月22日 16:03