我能想到的最好的方法是
function is_array_alike($array) {
return is_array($array) || (is_object($array) && $array instanceof ArrayAccess && $array instanceof Traversable && $array instanceof Serializable && $array instanceof Countable);
}
啊。还有更漂亮的吗?
编辑:测试is_object
似乎没有必要。我在 instanceof PHP 手册中添加了一个关于此的部分。