]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - lib/arraywrapper.php
424714e908c46f8a6795e9eaff1e75501390f7bc
[quix0rs-gnu-social.git] / lib / arraywrapper.php
1 <?php
2 /*
3  * StatusNet - the distributed open-source microblogging tool
4  * Copyright (C) 2008, 2009, StatusNet, Inc.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Affero General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Affero General Public License for more details.
15  *
16  * You should have received a copy of the GNU Affero General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 if (!defined('STATUSNET')) {
21     exit(1);
22 }
23
24 class ArrayWrapper
25 {
26     var $_items = null;
27     var $_count = 0;
28     var $N = 0;
29     var $_i = -1;
30
31     function __construct($items)
32     {
33         $this->_items = $items;
34         $this->_count = count($this->_items);
35         $this->N = $this->_count;
36     }
37
38     function fetch()
39     {
40         if (!$this->_items) {
41             return false;
42         }
43         $this->_i++;
44         if ($this->_i < $this->_count) {
45             return true;
46         } else {
47             return false;
48         }
49     }
50
51     function __set($name, $value)
52     {
53         $item =& $this->_items[$this->_i];
54         $item->$name = $value;
55         return $item->$name;
56     }
57
58     function __get($name)
59     {
60         $item =& $this->_items[$this->_i];
61         return $item->$name;
62     }
63
64     function __isset($name)
65     {
66         $item =& $this->_items[$this->_i];
67         return isset($item->$name);
68     }
69
70     function __unset($name)
71     {
72         $item =& $this->_items[$this->_i];
73         unset($item->$name);
74     }
75
76     function __call($name, $args)
77     {
78         $item =& $this->_items[$this->_i];
79         return call_user_func_array(array($item, $name), $args);
80     }
81 }