我有这个类:
class ResultSet
implements ArrayAccess, Countable, Iterator {
/// Rest of implementation ...
}
我在使用usort()并将我的对象作为第一个参数传递时遇到了一个问题。usort()需要一个数组而不是一个对象,但考虑到我对ArrayAccess
接口的实现,我不知道它还需要什么。
php返回的确切错误为:CCD_ 2。
usort
如何知道您是如何实现ArrayAccess
的?没有定义保存值的地方——灵活性是接口的全部意义。
如果将元素存储在对象的私有成员数组中,则可以代理usort
操作。例如:
public function usort($callback) {
usort($this->container, $callback);
}
如果内存可用,则在ArrayAccess页面上或其中一条注释中(实际上可能是后者)会有一个大警告标志。它基本上按照以下顺序说明:接口有些无用,因为PHP的数组函数不将其任何成员识别为数组。