国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 故城县| 昆山市| 淮安市| 汉源县| 江门市| 福清市| 凉城县| 乡城县| 清涧县| 新干县| 开封县| 洛川县| 北辰区| 宝坻区| 遵义市| 东莞市| 霞浦县| 吴川市| 乡宁县| 敦煌市| 南岸区| 锡林郭勒盟| 交城县| 亳州市| 凤山市| 卢龙县| 法库县| 黑龙江省| 惠来县| 朔州市| 修武县| 沂源县| 团风县| 贵定县| 延安市| 桦川县| 渭源县| 普兰店市| 罗田县| 石阡县| 夹江县|