diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2014-03-06 13:13:01 +0100 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2014-03-06 13:13:01 +0100 |
commit | a7d68eaf1a0df1d954b4d6623ff0419a93739cd2 (patch) | |
tree | cc328c2e9cf55758d6dbae08f1f474258578e3b1 /program/lib | |
parent | 3505d576412c64551dd1bc7d61ca892d576f88fb (diff) |
Implement ArrayAccess interface for conveniently accessing rcube_result_set as array
Diffstat (limited to 'program/lib')
-rw-r--r-- | program/lib/Roundcube/rcube_result_set.php | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php index a4b070e28..82502ce5f 100644 --- a/program/lib/Roundcube/rcube_result_set.php +++ b/program/lib/Roundcube/rcube_result_set.php @@ -25,7 +25,7 @@ * @package Framework * @subpackage Addressbook */ -class rcube_result_set implements Iterator +class rcube_result_set implements Iterator, ArrayAccess { public $count = 0; public $first = 0; @@ -61,6 +61,34 @@ class rcube_result_set implements Iterator $this->current = $i; } + /*** Implement PHP ArrayAccess interface ***/ + + public function offsetSet($offset, $value) + { + if (is_null($offset)) { + $offset = count($this->records); + $this->records[] = $value; + } + else { + $this->records[$offset] = $value; + } + } + + public function offsetExists($offset) + { + return isset($this->records[$offset]); + } + + public function offsetUnset($offset) + { + unset($this->records[$offset]); + } + + public function offsetGet($offset) + { + return $this->records[$offset]; + } + /*** PHP 5 Iterator interface ***/ function rewind() |