最近在用 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呢?