最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php使用json_encode對變量json編碼

 更新時間:2014年04月07日 09:29:44   作者:  
這篇文章主要是說明 json_encode 使用時一個需要注意的細(xì)節(jié),無論返回的是數(shù)組還是 json,都不代表這一定就是個錯誤的返回結(jié)果,當(dāng)前端需要的數(shù)組時,數(shù)組就是正確的結(jié)果,反之亦然

在 ajax 橫行的今天,json 順理成章地成為了前后端交互一個極其重要的工具。對于 PHP 來說,通常使用 json_encode 方法將一個 PHP 組數(shù),轉(zhuǎn)換成前端可以解析的 json 字符串,這也是 PHP 手冊上描述的內(nèi)容,但事實是這樣的嗎?看看下面這段代碼:

復(fù)制代碼 代碼如下:

$a = array( 'Jack' , 'Sam' , 'Tom' );
echo json_encode( $a );

當(dāng) JavaScript 請求到上面的代碼,PHP 將解析數(shù)組 $a 為 json 字符串并返回到前端,但事實上在前端拿到的返回結(jié)果卻是一個數(shù)組。
復(fù)制代碼 代碼如下:

[ "Jack" ,  "Sam" ,  "Tom" ]

這個結(jié)果對于前端來說也許并不是所期望的,對于 JavaScript 來說,數(shù)組和 json 的關(guān)系非常密切,甚至可以簡單地把 json 理解為關(guān)聯(lián)數(shù)組,但這并不意味著二者可以劃等號,比如 json 沒有 length 屬性,也不能進(jìn)行數(shù)字索引,json 是鍵值對,而 JavaScript 的數(shù)組嚴(yán)格說來是沒有"鍵"的,這和 PHP 的差異比較大。那么為什么 json_encode 的返回結(jié)果是數(shù)組呢?

本文開頭的 PHP 代碼中的數(shù)組是嚴(yán)格意義上的數(shù)字索引數(shù)組,json_encode 方法在處理這樣的數(shù)組的時候會返回數(shù)組字符串,它需要同時滿足兩個條件:1. 數(shù)字索引數(shù)組,2. 索引值從 0 開始。這意味著下面的代碼也會返回同樣的結(jié)果:

復(fù)制代碼 代碼如下:

$b = array(
'0' => 'Jack',
'1' => 'Sam',
'2' => 'Tom'
);
echo json_encode( $b );

這兩個條件的任意一個沒有獲得滿足,那么 json_encode 方法才真正的返回 json 字符串:
復(fù)制代碼 代碼如下:

$c = array(
'person-1' => 'Jack',
'person-2' => 'Sam',
'person-3' => 'Tom'
);
echo json_encode( $c );

這時前端得到的結(jié)果如下:
復(fù)制代碼 代碼如下:

{
'person-1' : 'Jack',
'person-2' : 'Sam',
'person-3' : 'Tom'
};

相關(guān)文章

最新評論

桂林市| 绥江县| 白银市| 张掖市| 安泽县| 东兴市| 大城县| 原阳县| 蒙山县| 阿巴嘎旗| 新龙县| 象山县| 综艺| 苏尼特左旗| 马尔康县| 杭锦后旗| 翁源县| 湛江市| 安庆市| 渝北区| 米泉市| 息烽县| 囊谦县| 鄂尔多斯市| 林甸县| 韶山市| 周口市| 化隆| 修水县| 汝阳县| 昌黎县| 梅州市| 洪泽县| 满城县| 大冶市| 鲜城| 团风县| 谢通门县| 大宁县| 红安县| 黔西县|