欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:ai 安全 PHP json

柚子快報(bào)邀請碼778899分享:ai 安全 PHP json

http://yzkb.51969.com/

「作者主頁」:士別三日wyx 「作者簡介」:CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」:對網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》

json_decode

一、返回?cái)?shù)組類型二、JSON的鍵和值必須用雙引號三、返回null問題四、大整數(shù)問題五、傳入非字符串類型六、強(qiáng)制類型轉(zhuǎn)換

json_decode() 可以對JSON字符串「解碼」,并轉(zhuǎn)換為PHP變量。

語法

mixed json_decoce( $json_str, assoc, depth, options )

參數(shù)

$json_str :需要解碼的JSON字符串,只能處理UTF-8編碼的數(shù)據(jù) assoc :布爾類型,true返回?cái)?shù)組,(默認(rèn))false返回對象 depth :整數(shù)類型,遞歸的深度(默認(rèn)512層),最大 2147483647 層 options :二進(jìn)制掩碼,目前只支持 JSON_BIGINT_AS_STRING

返回值

通過恰當(dāng)?shù)念愋?,返回解碼后的數(shù)據(jù),默認(rèn)返回對象類型。JSON格式錯(cuò)誤 或 超過遞歸解析深度 或 false 或 null,就返回null。

一、返回?cái)?shù)組類型

json_decode() 默認(rèn)返回「對象」類型,如果想返回「數(shù)組」類型,就將 assoc 參數(shù)設(shè)置為true。 assoc 參數(shù)可省略,默認(rèn)為false。

實(shí)例:

var_dump(json_decode('{"key1":"value1","key2":"value2"}'));

var_dump(json_decode('{"key1":"value1","key2":"value2"}', true));

輸出:

object(stdClass)#1 (2) {

["key1"]=>

string(6) "value1"

["key2"]=>

string(6) "value2"

}

array(2) {

["key1"]=>

string(6) "value1"

["key2"]=>

string(6) "value2"

}

options 參數(shù)設(shè)置為 JSON_OBJECT_AS_ARRAY 時(shí),也可以轉(zhuǎn)換成「數(shù)組」類型。

實(shí)例:

var_dump(json_decode('{"key1":"value1","key2":"value2"}', JSON_OBJECT_AS_ARRAY));

輸出:

array(2) {

["key1"]=>

string(6) "value1"

["key2"]=>

string(6) "value2"

}

二、JSON的鍵和值必須用雙引號

「解析」的JSON字符串,最外側(cè)用單引號包裹,里面的鍵值對用「雙引號」包裹,才能正常解析,否則會返回null。

實(shí)例:

var_dump(json_decode('{"key1":"value1","key2":"value2"}'));

var_dump(json_decode("{'key1':'value1','key2':'value2'}"));

輸出:

object(stdClass)#1 (2) {

["key1"]=>

string(6) "value1"

["key2"]=>

string(6) "value2"

}

NULL

這時(shí),(PHP 7.3以上)可以設(shè)置參數(shù) options 為JSON_THROW_ON_ERROR,使其在解析錯(cuò)誤時(shí)拋出異常,方便我們及時(shí)處理錯(cuò)誤。

三、返回null問題

除了剛才提到的JSON字符串格式錯(cuò)誤會返回null,還有其他的原因。

遇到返回null的問題時(shí),可以在 json_decode() 后面,打印  json_last_error() 查看錯(cuò)誤。

實(shí)例:

var_dump(json_decode("{'key1':'value1','key2':'value2'}"));

echo json_last_error();

輸出:

NULL

4

json_last_error() 返回值解析:

0 = JSON_ERROR_NONE //沒有錯(cuò)誤1 = JSON_ERROR_DEPTH //超過最大堆棧深度2 = JSON_ERROR_STATE_MISMATCH //無效或異常的json3 = JSON_ERROR_CTRL_CHAR //控制字符錯(cuò)誤,可能是編碼不對4 = JSON_ERROR_SYNTAX //JSON字符串語法錯(cuò)誤5 = JSON_ERROR_UTF8 //異常的UTF-8字符,只能處理UTF8編碼的數(shù)據(jù)

四、大整數(shù)問題

options 參數(shù)設(shè)置為 JSON_BIGINT_AS_STRING,可以將超過PHP整型「最大值」的整數(shù)解析為字符串。

五、傳入非字符串類型

如果傳入的不是字符串類型,就不會解碼,或者說「無法解碼」:

數(shù)值型會原樣返回運(yùn)算符會運(yùn)算后返回運(yùn)算結(jié)果布爾型(true返回1,false返回NULL)null會返回NULL

實(shí)例:

var_dump(json_decode(10));

var_dump(json_decode(10.11));

var_dump(json_decode(1*2));

var_dump(json_decode(true));

var_dump(json_decode(false));

var_dump(json_decode(null));

輸出:

int(10)

float(10.11)

int(2)

int(1)

NULL

NULL

六、強(qiáng)制類型轉(zhuǎn)換

解碼后進(jìn)行「強(qiáng)制類型轉(zhuǎn)換」

實(shí)例:

var_dump((array)json_decode(10));

var_dump((int)json_decode(false));

輸出:

array(1) {

[0]=>

int(10)

}

int(0)

柚子快報(bào)邀請碼778899分享:ai 安全 PHP json

http://yzkb.51969.com/

推薦閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/15789782.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄