2012-08-17 71 views
1

我使用json_encode來轉儲數組,我得到不同的結果,使用array()SplFixedArray。當我使用array()時,它給了我陣列,但是當我使用SplFixedArray時給了我一個對象。是否有一個原因?爲什麼SplFixedArray的json_encode轉儲對象而不是數組?

這是當我使用普通陣列()什麼是返回:

[{"firstName":"Bo","middleName":"N","lastName":"Higgs"}, 
{"firstName":"Bob","middleName":"D","lastName":"Superstar"}] 

當我使用SplFixedArray它給了我:

{"0":{"firstName":"Bo","middleName":"N","lastName":"Higgs"}, 
"1":{"firstName":"Bob","middleName":"D","lastName":"Superstar"}} 

回答

0

兩個字符串是完全一樣的, SplFixedArray只有一點點不同的存儲方式,因爲它是一個FIXED數組。 simple demo

另請務必閱讀說明書。如果你啓動SplFixedArray(它是一個類,而不是一個函數),你會得到一個對象作爲回報。手冊: http://php.net/manual/en/class.splfixedarray.php

+0

這兩個字符串是完全不同的,JSON數組不是JSON對象。嘗試使用另一種語言解碼它,而不是PHP,你就會明白。只有PHP將所有數組視爲hashmaps,並且它的唯一真正的數組類型'SplFixedArray' JSON到對象中是非常奇怪的。 – oskarth 2017-10-20 08:23:22

相關問題