最近在用 LeanCloud 的 PHP SDK ,有一个场景是这样的。
获取到一个数组,格式如下:(这个是 LeanCloud 的 Class 里存储的样子,实际上在客户端里是正常的数组形式)
$test = [
{"title": "aaa"},
{"title": "bbb"},
{"title": "ccc"}
]
使用 unset($test[1])
后,传回到 LeanCloud ,触发了 Exception ,提示你上传了一个 Object ,而不是 Array 。
我用 print_r
输出后,这个处理后的数组是正常显示的(索引剩下 0 、 2 )
然后用 is_array($test)
得到 true
然后发现当 unset($test[2])
(即删除最后一个元素),再提交到 LeanCloud ,却没有说这是一个 Object 了。
那么是不是当索引的顺序被破坏后,一个 Array 就变成了 Object ,那为什么 is_array
仍然返回 true
呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.