摘要:在介紹這兩個(gè)函數(shù)之前,我還是想說(shuō)一下。我們需要知道的是可以轉(zhuǎn)為格式的數(shù)據(jù)類型是對(duì)象和鍵值對(duì)數(shù)組其次是。對(duì)格式的字符串進(jìn)行解碼,并轉(zhuǎn)換為變量。這樣我們可以很好的解釋的第二個(gè)參數(shù)當(dāng)為時(shí)返回?cái)?shù)組當(dāng)為默認(rèn)為時(shí)返回對(duì)象。
? ? 在介紹這兩個(gè)函數(shù)之前,我還是想說(shuō)一下json。不知道大家對(duì)json了解多少,感覺(jué)自己接觸php一段時(shí)間后,就已經(jīng)對(duì)json有些印象,但僅僅是印象而已,我只知道它是一種數(shù)據(jù)類型,比較輕量。但是對(duì)于它的結(jié)構(gòu),我真的是模糊不清,直到現(xiàn)在使用它,我才了解到,所以:實(shí)踐是檢驗(yàn)?zāi)闶欠瘾@得真知的一種非常有效的方法。
首先是json_encode(),意思就是將數(shù)據(jù)轉(zhuǎn)為json格式,那什么類型數(shù)據(jù)可以轉(zhuǎn)為json格式呢
? ? ?1.對(duì)象。
? ? ?定義一個(gè)class,new一個(gè)對(duì)象,可以將對(duì)象轉(zhuǎn)為json格式
class Emp {
public $name = ""; public $hobbies = ""; public $birthdate = "";
}
$e = new Emp();
$e->name = "sachin";
$e->hobbies = "sports";
$e->birthdate = date("m/d/Y h:i:s a", "8/5/1974 12:20:03 p");
$e->birthdate = date("m/d/Y h:i:s a", strtotime("8/5/1974 12:20:03"));
echo json_encode($e);
?>
結(jié)果
{"name":"sachin","hobbies":"sports","birthdate":"08/05/1974 12:20:03 pm"}
?2.數(shù)組。
?定義一個(gè)鍵值對(duì)數(shù)組
$arr = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5);
echo json_encode($arr);
?>
結(jié)果
{"a":1,"b":2,"c":3,"d":4,"e":5}
我們可以知道都是轉(zhuǎn)為了json格式數(shù)據(jù),其實(shí)重點(diǎn)不在于結(jié)果相同,因?yàn)槎际寝D(zhuǎn)為json么。。我們需要知道的是可以轉(zhuǎn)為json格式的數(shù)據(jù)類型是對(duì)象和鍵值對(duì)數(shù)組
其次是json_decode()。對(duì) JSON 格式的字符串進(jìn)行解碼,并轉(zhuǎn)換為 PHP 變量。
先上代碼
$json = "{"a":1,"b":2,"c":3,"d":4,"e":5}";
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
打印結(jié)果
object(stdClass)#1 (5) {
["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5)
}
array(5) {
["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5)
}
這里我們很顯然的看出第一個(gè)打印結(jié)果是一個(gè)對(duì)象,第二個(gè)是一個(gè)鍵值對(duì)數(shù)組。
這樣我們可以很好的解釋json_decode()的第二個(gè)參數(shù):
當(dāng)為true時(shí):返回?cái)?shù)組;當(dāng)為false(默認(rèn)為false)時(shí):返回對(duì)象。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/102759.html
摘要:本文將會(huì)介紹自起,直至中增加的新特征。棄用的功能以下幾個(gè)功能被棄用,若在配置文件中啟用,則會(huì)在運(yùn)行時(shí)發(fā)出警告。該類的完整限定名是其中第一個(gè)反斜杠表示全局命名空間。目的在于模仿的不對(duì),目的是為了讓發(fā)布應(yīng)用程序更加方便。 截至目前(2014.2), PHP 的最新穩(wěn)定版本是 PHP5.5, 但有差不多一半的用戶仍在使用已經(jīng)不在維護(hù) [注] 的 PHP5.2, 其余的一半用戶在使用 PHP5...
摘要:和函數(shù)這兩個(gè)是序列化和反序列化中數(shù)據(jù)的常用函數(shù)。序列化數(shù)組輸出結(jié)果反序列化輸出結(jié)果當(dāng)數(shù)組值包含如雙引號(hào)單引號(hào)或冒號(hào)等字符時(shí),它們被反序列化后,可能會(huì)出現(xiàn)問(wèn)題。序列化反序列化但是編碼將增加字符串的長(zhǎng)度。序列化數(shù)組輸出結(jié)果反序列化 序列化是將變量轉(zhuǎn)換為可保存或傳輸?shù)淖址倪^(guò)程;反序列化就是在適當(dāng)?shù)臅r(shí)候把這個(gè)字符串再轉(zhuǎn)化成原來(lái)的變量使用。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù),使程序...
摘要:結(jié)論把存入數(shù)據(jù)庫(kù)前必須做次處理中文處理包含中文的字符串時(shí),會(huì)將中文字符轉(zhuǎn)換為的形式,而且通過(guò)是不能恢復(fù)的。處理特殊字符通過(guò)解決中文問(wèn)題會(huì)帶來(lái)新問(wèn)題,的特殊字符處理。 開(kāi)發(fā)過(guò)程中經(jīng)常碰到要把前端的json格式的數(shù)據(jù)傳遞到后端php,php做一些業(yè)務(wù)處理后把數(shù)據(jù)存到mysql,然后,php再?gòu)膍ysql中取出數(shù)據(jù)返回到前端。雖然這是一個(gè)再基礎(chǔ)不過(guò)的處理過(guò)程,但還是有不少問(wèn)題需要認(rèn)真研究。下...
摘要:結(jié)論把存入數(shù)據(jù)庫(kù)前必須做次處理中文處理包含中文的字符串時(shí),會(huì)將中文字符轉(zhuǎn)換為的形式,而且通過(guò)是不能恢復(fù)的。處理特殊字符通過(guò)解決中文問(wèn)題會(huì)帶來(lái)新問(wèn)題,的特殊字符處理。 開(kāi)發(fā)過(guò)程中經(jīng)常碰到要把前端的json格式的數(shù)據(jù)傳遞到后端php,php做一些業(yè)務(wù)處理后把數(shù)據(jù)存到mysql,然后,php再?gòu)膍ysql中取出數(shù)據(jù)返回到前端。雖然這是一個(gè)再基礎(chǔ)不過(guò)的處理過(guò)程,但還是有不少問(wèn)題需要認(rèn)真研究。下...
摘要:原始數(shù)據(jù)其中是我要進(jìn)行處理的字段,處理完成之后再次使用進(jìn)行編碼。所以正確的做法是在解碼的時(shí)候不要傳遞第二個(gè)參數(shù)讓解碼結(jié)果是一個(gè)對(duì)象,然后操作對(duì)象的屬性,操作完成之后再次編碼就不會(huì)出現(xiàn)偏差。 場(chǎng)景:某項(xiàng)目客戶反饋,輸出的結(jié)果 JSON 中有個(gè)要求為對(duì)象的數(shù)據(jù)字段,在某些情況下返回的是 [] 而不是 {};數(shù)據(jù)由公司其他部門(mén)提供,查看原始數(shù)據(jù)的時(shí)候,沒(méi)有發(fā)現(xiàn)任何問(wèn)題;后來(lái)因?yàn)橐尤肽承╊A(yù)處...
閱讀 3717·2021-10-11 10:59
閱讀 1301·2019-08-30 15:44
閱讀 3479·2019-08-29 16:39
閱讀 2888·2019-08-29 16:29
閱讀 1800·2019-08-29 15:24
閱讀 808·2019-08-29 15:05
閱讀 1264·2019-08-29 12:34
閱讀 2302·2019-08-29 12:19