我有一个Collection类,它在内部将数据保存为数组。
class Collection implements \IteratorAggregate, \Countable, \ArrayAccess
{
...
}
在代码的某个时刻,正在发生以下事情
$list = new Collection([]);
array_map(function(Object $v){ return $v->getKey(); }, $list);
我认为实现ArrayAccess应该足以使对象表现得像一个数组。在这种情况下,我有其他实现aS井,但显然PHP使用一些其他机制来检测传递的参数是否是一个数组,因为我得到了
array_map(): Argument #2 should be an array