我有这堂课:
class ResultSet
implements ArrayAccess, Countable, Iterator {
/// Rest of implementation ...
}
我遇到了使用usort()并将我的对象作为第一个参数传递的问题。 usort()需要一个数组而不是一个对象,但是考虑到我对ArrayAccess
接口的实现,我不知道它还需要什么。
php返回的确切错误是:
Warning: usort() expects parameter 1 to be array, object given
。
答案 0 :(得分:0)
如果内存服务,则在ArrayAccess页面上或其中的一个注释中有一个很大的警告标志(实际上可能是后者)。它基本上按照以下顺序说:接口有点无用,因为PHP的数组函数不能将其任何成员识别为数组。
答案 1 :(得分:0)
usort
如何知道您如何实施ArrayAccess
?没有保留值的定义位置 - 灵活性是界面的重点。
如果要将元素存储在作为对象私有成员的数组中,则可以代理usort
操作。例如:
public function usort($callback) {
usort($this->container, $callback);
}