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