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:17:31 +0100 |
commit | 143ceff0d83c53000dd29c2047d204c08dba9de7 (patch) | |
tree | 535d8b6aeab2f9a1c0b13b94fbccd3f7d6a06578 /program/lib/Roundcube | |
parent | 532c10669be034d314b1906e8247339132f1ec61 (diff) |
Implement ArrayAccess interface for conveniently accessing rcube_result_set as array
Diffstat (limited to 'program/lib/Roundcube')
-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() |