为什么SplFixedArray的json_encode转储对象而不是数组?

时间:2012-08-17 16:09:26

标签: php arrays json

我正在使用json_encode转储数组,我使用array()SplFixedArray获得了不同的结果。当我使用array()时,它给出了我应该使用的数组,但是当我使用SplFixedArray时,它给了我一个对象。有这个原因吗?

这是我使用普通数组()时返回的内容:

[{"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"}}

1 个答案:

答案 0 :(得分:0)

两个字符串完全相同,SplFixedArray只有一个不同的存储方式,因为它是一个FIXED数组。 simple demo

另请务必阅读本手册。如果你启动SplFixedArray(它是一个类,而不是一个函数),你会得到一个对象作为回报。手册: http://php.net/manual/en/class.splfixedarray.php