php json_encode 細節

kyanag發表於2019-02-16
$exp = [0, 1, 2, 3, 4, 5];

echo sprintf("exp %s 
", json_encode($exp)); #exp [0,1,2,3,4,5]

$exp1 = [0, 1, 2, 3, 4, 5];
unset($exp1[0]);

echo sprintf("exp1 %s 
", json_encode($exp1)); #exp1 {"1":1,"2":2,"3":3,"4":4,"5":5}

$exp2 = [0, 1, 2, 3, 4, 5];
unset($exp2[5]);

echo sprintf("exp2 %s 
", json_encode($exp2)); #exp2 [0,1,2,3,4]

就是說
如果key不連續 或者 不從0開始 , 那麼 , json_encode的結果就是js的物件而不是陣列
雖然物件和陣列都可以用 下標 | 鍵值 來訪問 , 但是物件是無法 push , pop的
在vue1.0裡面,物件是無法$set的 , 可能因為這些細小的差別而出現問題

相關文章