欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php使用json_encode對(duì)變量json編碼

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • Laravel框架中緩存的使用方法分析

    Laravel框架中緩存的使用方法分析

    這篇文章主要介紹了Laravel框架中緩存的使用方法,結(jié)合具體實(shí)例形式分析了Laravel框架中緩存的常用方法、操作步驟及相關(guān)使用操作技巧,需要的朋友可以參考下
    2019-09-09
  • laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語句的方法

    laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語句的方法

    今天小編就為大家分享一篇laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語句的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • LaravelS通過Swoole加速Laravel/Lumen詳解

    LaravelS通過Swoole加速Laravel/Lumen詳解

    這篇文章主要給大家介紹了關(guān)于LaravelS通過Swoole加速Laravel/Lumen的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • php微信分享到朋友圈、QQ、朋友、微博

    php微信分享到朋友圈、QQ、朋友、微博

    這篇文章主要為大家詳細(xì)介紹了php微信分享到朋友圈、QQ、朋友、微博,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • PHP 使用memcached簡(jiǎn)單示例分享

    PHP 使用memcached簡(jiǎn)單示例分享

    在很多場(chǎng)合,我們都會(huì)聽到 memcached 這個(gè)名字,但很多同學(xué)只是聽過,并沒有用過或?qū)嶋H了解過,只知道它是一個(gè)很不錯(cuò)的東東。這里簡(jiǎn)單介紹一下,memcached 是高效、快速的分布式內(nèi)存對(duì)象緩存系統(tǒng),主要用于加速WEB動(dòng)態(tài)應(yīng)用程序。今天我們就先來簡(jiǎn)單探討下memcached的用法
    2015-03-03
  • Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法

    Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法

    這篇文章主要給大家介紹了Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Yii CFileCache 獲取不到值的原因分析

    Yii CFileCache 獲取不到值的原因分析

    這篇文章主要介紹了Yii CFileCache 獲取不到值的原因分析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-02-02
  • 一個(gè)好用的PHP驗(yàn)證碼類實(shí)例分享

    一個(gè)好用的PHP驗(yàn)證碼類實(shí)例分享

    這篇文章主要介紹了一個(gè)好用的PHP驗(yàn)證碼類實(shí)例,有需要的朋友可以參考一下
    2013-12-12
  • php不用正則驗(yàn)證真假身份證

    php不用正則驗(yàn)證真假身份證

    以前我要驗(yàn)證身份證我們多半會(huì)使用正則判斷用戶輸入是不是15位或18位的全數(shù)字,然后來判斷身份證是否合法了,這種方法只是最基礎(chǔ)的,下面提供的這個(gè)身份證驗(yàn)證,可以識(shí)別真假身份證哦
    2013-11-11
  • PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)代碼

    PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)代碼

    這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)全部代碼實(shí)例講解,代碼講解的很清楚,對(duì)這方面不懂的初學(xué)者可以照著練習(xí)研究下
    2021-01-01

最新評(píng)論