国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

深入理解PHP JSON數(shù)組與對象

2024-05-04 23:48:24
字體:
供稿:網(wǎng)友

在PHP后端和客戶端數(shù)據(jù)交互的過程中,JSON數(shù)據(jù)中有時格式不定,一會兒是數(shù)組,一會兒是對象,弄得客戶端開發(fā)人員要崩潰的感覺。

因此,前后端相關(guān)人員先對PHP的json_encode函數(shù)原理有必要的了解是最重要的一個環(huán)節(jié)。

PHP中的array是個萬能的數(shù)據(jù)結(jié)構(gòu),并不像其它語言根據(jù)需要的場景會定義很多約束性的數(shù)據(jù)類型來描述結(jié)構(gòu),所以PHP程序員是很難給客戶端人員講清楚返回的是什么結(jié)構(gòu)的數(shù)據(jù)的。

也就變成明明是通過PHP的數(shù)組數(shù)據(jù)編碼成json的,但輸出值有時是數(shù)組、有時是對象的情況。

<?php/*如果你想生成一個json格式的數(shù)組格式(Vector)而非對象格式(Map)的,那么數(shù)據(jù)的下標(biāo):必須是數(shù)字索引,必須從0開始,必須從小到大依次增加、中間不可以跳躍、順序不可變動.*///符合數(shù)組$vector = [12, 23, 18];echo json_encode($vector);//符合數(shù)組$vector2 = [0 => 12, 1 => 23, 2 => 18];echo json_encode($vector2);//不符合數(shù)組,下標(biāo)有跳躍$map = [0 => 12, 1 => 23, 2 => 18, 4 => 20];echo json_encode($map);//不符合數(shù)組,下標(biāo)順序不對$map = [0 => 12, 1 => 23, 3 => 18, 2 => 20];echo json_encode($map);//不符合數(shù)組,下標(biāo)沒有從0開始$map_1 = [1 => '111', 2 => 'asdfa'];echo json_encode($map_1);//典型的對象格式$map_2 = ['abc' => 1, 'de' => 2, 'fi' => null];echo json_encode($map_2);/*** 請注意上面的變量命名,對應(yīng)于Hack中的概念,Vector和Map為兩種數(shù)據(jù)集合類型* 如果你需要將"索引數(shù)組"強(qiáng)制轉(zhuǎn)化成"對象",可以這樣寫* json_encode((object) $a);* 或* json_encode ($a, JSON_FORCE_OBJECT);**/

解決方案是什么呢?

就是通過PHP封裝Vector和Map這兩種數(shù)據(jù)結(jié)構(gòu)的類,在構(gòu)造json輸出結(jié)構(gòu)時,以這兩種類型做封裝和轉(zhuǎn)換,來確保結(jié)構(gòu)的確定性。

以上所述是小編給大家介紹的PHP JSON數(shù)組與對象,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 大安市| 开化县| 达州市| 高州市| 东宁县| 繁昌县| 伽师县| 佛冈县| 庄浪县| 宁乡县| 固始县| 安福县| 白银市| 武邑县| 通道| 全州县| 阳新县| 扶风县| 轮台县| 承德市| 衢州市| 曲阳县| 页游| 洪雅县| 睢宁县| 双江| 合江县| 新乐市| 河间市| 濉溪县| 简阳市| 普定县| 宽城| 长岭县| 黄骅市| 师宗县| 京山县| 沁水县| 平乐县| 平乐县| 鲁甸县|