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