我有这样一门课:
class ResultSet
implements ArrayAccess, Countable, Iterator {
/// Rest of implementation ...
}我在使用usort()并将我的对象作为第一个参数传递时遇到了一个问题。ArrayAccess ()需要一个数组而不是一个对象,但是考虑到我的usort接口的实现,我不知道它还需要什么。
php返回的确切错误是:Warning: usort() expects parameter 1 to be array, object given。
发布于 2011-06-10 02:19:31
usort如何知道您是如何实现ArrayAccess的?没有定义的地方来保存值--灵活性是接口的全部意义所在。
如果要将元素存储在对象的私有成员数组中,则可以代理usort操作。例如:
public function usort($callback) {
usort($this->container, $callback);
}发布于 2011-06-10 02:17:00
如果我没记错的话,在ArrayAccess页面上或者评论中有一个很大的警告标志(实际上可能是后者)。它基本上是这样说的:接口有点没用,因为PHP的数组函数不会将它的任何成员识别为数组。
https://stackoverflow.com/questions/6297336
复制相似问题